码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2015-10-14 00:25:06      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

定义

确保一个类在程序中只有一个实例并提供一个访问它的全局访问点。

类图

技术分享

代码

 1    public class SingleTon
 2     {
 3         private static object mLock = new object();
 4         private SingleTon()
 5         { }
 6         private static SingleTon instance;
 7         public static SingleTon GetInstance()
 8         {
 9             if (instance == null)
10             {
11                 lock (mLock)
12                 {
13                     if (instance == null)
14                     {
15                         instance = new SingleTon();
16                     }
17                 }
18             }
19             return instance;
20 
21         }
22     }

 

总结

曾经非常纠结,为什么不用静态的类来代替单例。后来才知道,静态不能保证程序中只有一个这个类的实例,甚至可能会新建,所以它并不能替换。

也曾考虑为什么在获取实例处要判断两次if (instance == null)--这个则是考虑两个线程同时到达时锁前锁后重复创建的严谨性与正确性。

关于恶汉模式(private static SingleTon instance=new SingleTon();),定义变量时初始化,则在类第一次被访问时触发初始化,以后就可以实习单例的重复使用了,这样也是可行的。

单例模式

标签:

原文地址:http://www.cnblogs.com/Joy-et/p/4876196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!