单件模式(Singleton Pattern)

来源:互联网 发布:网络神豪系统txt下载 编辑:程序博客网 时间:2024/05/16 15:30

单件模式(Singleton Pattern):用来创建独一无二的,只有一个实例的对象的入场券

 //以“MyClass”作为单件类的类名,你可以根据自己的单件进行命名    public class MyClass    {        //单件类内部的唯一实例,volatile关键词确保当uniqueInstance变量被初始化成为Singleton实例时,多个线程正确的处理uniqueInstance变量        private volatile static MyClass uniqueInstance;       //用于同步锁       private static object synchronized = new object();        //保证外部程序无法对该类进行实例化        private MyClass() { }        //通过静态方法获取该单件类,具体操作为'MyClass.getInstance()'        public static MyClass getInstance()        {                   lock (synchronized){             //使用synchronized进行同步锁,进入该区域后其他线程无法进入该区域                    if (uniqueInstance == null){   //检查变量uniqueInstance是否已经被实例                      uniqueInstance = new Singleton();                 }                }            }            return uniqueInstance;        }    }


简化的实现方式

    public class MyClass    {        private MyClass() { }        private static readonly Lazy<MyClass> _instance = new Lazy<MyClass>(() => new MyClass());        public static MyClass Instance { get { return _instance.Value; } }    }

总结:

确保一个类只有一个实例,并提供一个全局访问点。

下面有一个讲的很好的单例模式,但是使用JAVA实现的,讲解参考性非常棒。

转载:

http://blog.csdn.net/likika2012/article/details/11483167   作者:likika2012


0 0
原创粉丝点击