设计模式一(单例模式)
前言:
设计模式博客园里好多大牛都有,本文主要是供自己以后翻看。里面引用了好多大牛的东西。
言归正传:
第一篇为单例模式:
单例模式:是为了保证一个类只有一个实例,并且提供一个全局的访问接口。
可以解决的问题:类外多线程访问资源互斥的问题。
实现方式和举例:
1、本类只有一个实例,不能被外部NEW 说明本类的构造函数不能是公有的。
2、需要一个静态变量来保存类的实例。
3、提供一个供外部访问的接口。
4、按照以上思路代码实现。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Single { /// <summary> /// 单例模式 /// </summary> class Singletion { //定义一个对象来保存单例模式 private static Singletion _Instance; //用于枷锁 private static readonly object obj = new object(); //私有化构造函数 防止外部New private Singletion() { } //提供外部访问接口 public Singletion GetInstance() { //判断对象是否为空 if (_Instance==null) { //锁定,防止多线程同时访问本段代码,造成出现多个实例。 lock (obj) { //如果类的实例不存在则直接创造并其返回 if (_Instance==null) { _Instance = new Singletion(); } } } return _Instance; } } }
5、微软也实现了一个单例模式的类,思想都差不多,这里就不在赘述。
总结:本篇也是大部分看的别人的,但是看别人的永远是别人的,不是自己的,只有自己动手写了,才能转化为自己的东西,有些东西很简单,一看就懂,但是实际用的时候
又忘了,写不出来,我想可能就在于看懂了和真正动手写了,并且搞懂了的区别吧。