设计模式----单列模式

何为设计模式呢?简单的说就是能重复利用的解决方案,当碰到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;
        } 
    }

 

  


  

posted @ 2013-05-07 22:18  KyrieYang  阅读(1448)  评论(0编辑  收藏  举报