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, 那么就说明之前已经创建过该类的实例了, 那么就返回之前创建的实例就行了.
单体设计模式保证一个类只有一个实例,并提供一个全局访问该实例的方法