C#中的单体设计模式Singleton

经典的单体设计模式的实现就是

有一个Public的类,在这个类中,有一个私有的private的构造函数. 然后有一个静态方法,这个静态方法返回这个类的实例

举个例子如下

Public class MySingleton{

  private static MySingleton myUniqueInstance;

  private MySingleton() {}

  public static MySingleton getInstance()
  {

       if (myUniqueInstance == null)
       {
           myUniqueInstance = new MySingleton();      
       }
       
       return myUniqueInstance;


  // other useful methods here
 
  
  }
}

可以看出,这个类的构造方法是私有的,所以我们无法使用通常的 new MySingleton() 来获取该类的一个实例

里面很重要的一部分如下

  if (myUniqueInstance == null)
       {
           myUniqueInstance = new MySingleton();      
       }
       
       return myUniqueInstance;

如果该实例引用为null, 那么创建一个实例, 并把这个实例赋給类的那个成员变量. 这里要注意, 如果我们永远不需要这个类的实例, 那么这个类永远也不会被实例化, 这叫做懒初始化.

如果实例引用不是null, 那么就说明之前已经创建过该类的实例了, 那么就返回之前创建的实例就行了.

 

单体设计模式保证一个类只有一个实例,并提供一个全局访问该实例的方法

 

posted on 2018-04-18 06:38  新西兰程序员  阅读(137)  评论(0编辑  收藏  举报