单例模式

单例模式就是确保一个类只有一个实例,并且该实例必须自动创建,并向整个系统提供该实例。

实现原理:(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();
image
image
 

s1,s2都是返回同样一个实例,堆栈中存储地址也一样,当s1.num改变,所以s2.num也跟着改变

posted on 2013-01-21 16:34  快乐于行  阅读(390)  评论(0编辑  收藏  举报