单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点
- public class SingleTon
- {
- public string name;
- //1.构造方法必须私有化
- private SingleTon ()
- {
- }
- //2.定义静态实例
- private static SingleTon instance;
- //3.静态构造函数中对静态实例进行初始化
- static SingleTon(){
- instance = new SingleTon ();
- }
- //4.对外提供获取该实例的接口
- public static SingleTon Instance{
- get{
- if (instance == null) {
- instance = new SingleTon ();
- }
- return instance;
- }
- }
- }
1.该Singleton的构造函数必须是私有的,以保证客户程序不会通过new()操作产生一个实例,达到实现单例的目的;
2.因为静态变量的生命周期跟整个应用程序的生命周期是一样的,所以可以定义一个私有的静态全局变量instance来保存该类的唯一实例;
3.必须提供一个全局函数访问获得该实例,并且在该函数提供控制实例数量的功能,即通过if语句判断instance是否已被实例化,如果没有则可以同new()创建一个实例;否则,直接向客户返回一个实例。