单例模式
单例模式就是确保一个类只有一个实例,并且该实例必须自动创建,并向整个系统提供该实例。
实现原理:(1)将构造函数定义成私有或者受保护,使得不能通过构造函数来创建对象;(2)定义一个静态的方法提供公共接口,用于访问维一的实例。
单例模式特征:(1)任何时刻单例类只能有一个实例;(2)单例类自己创建这个唯一的实例;(3)单例类必须给所有其他对象提供这个实例。
class Single { static Single single; public static Single Default() { if (single == null) { return single = new Single(); } else { return single; } }
给这个类加个属性
class Single { private Single() { num = 10; } static Single single; public static Single Default() { if (single == null) { return single = new Single(); } else { return single; } } public int num; }
再主程序
Single s1 = Single.Default();
Console.WriteLine(s1.num);
s1.num = 100;
Single s2 = Single.Default();
Console.WriteLine(s2.num);
Console.ReadKey();
s1,s2都是返回同样一个实例,堆栈中存储地址也一样,当s1.num改变,所以s2.num也跟着改变