设计模式----单列模式
何为设计模式呢?简单的说就是能重复利用的解决方案,当碰到A项目也出现这种情况,B项目也出现这种情况
那么是否能把这懂实现功能抽象出来,形成一种解决方案.
单列模式:顾名思义就是一个实例(即一个对象只能初始化一次);作用:减少开辟内存空间,节约内存开销
class Program { static void Main(string[] args) { A a1 = A(); A a2 = A(); Console.WriteLine(a1 == a2); //输出false } }
因为A对象在内存堆中开辟了 a1和a2两个内存空间 所以他们的内存地址不可能相对
那么要怎样才能开辟一个空间呢,也就是创建一个对象呢?
首先我们就要阻击它new A(),阻击new A()那么构造函必须就要private()私有化
下面上代码:
class Program { static void Main(string[] args) { A a1 = A.getsingleInstance(); //同一个内存地址 A a2 = A.getsingleInstance(); A a3 = A.getsingleInstance(); Console.WriteLine(a1 == a2); Console.WriteLine(a2 == a3); } } public class A { private static A a =null; //静态变量在类加载的时初始化,并且只初始化一次 /// <summary> /// 构造方法私有化在外不能new对象 /// </summary> private A() { } public static A getsingleInstance() { if (a == null) { a = new A(); } return a; } }