一、单例模式的定义
确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一的实例,是一种对象创建型模式,有如下3个要点:
- 只能有一个实例
- 必须是自行创建这个实例
- 必须自行向整个系统提供这个实例
二、单例模式的结构
- 一个类型为自身的静态私有成员变量 - 存储唯一实例
- 一个私有的构造函数
- 一个公有的静态成员方法 ,返回唯一实例,对象为自身
1 class SingletonClass
2 {
3 private static SingletonClass _instance = null; //静态私有成员变量,存储唯一实例
4
5 private SingletonClass() //私有构造函数,保证唯一性
6 {
7 }
8
9 public static SingletonClass GetInstance() //公有静态方法,返回一个唯一的实例
10 {
11 if (_instance == null)
12 {
13 _instance = new SingletonClass();
14 }
15 return _instance;
16 }
17 }
三、单例模式的两种书写方法
1.类被加载时就将自己实例化
1 class SingletonClass
2 {
3 private static SingletonClass _instance = new SingletonClass();
4
5 private SingletonClass()
6 {
7 }
8
9 public static SingletonClass GetInstance()
10 {
11 return _instance;
12 }
13 }