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

单例模式(Singleton)

时间:2015-01-31 12:04:53      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

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

 通常移位可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象,一个最好的办法就是,让类自身负责保存它的唯一实例,这个类可以保证没有其它实例可以被创建。单例模式可以保证唯一的实例,可以对唯一实例的受控访问。单例类可以有状态,可以被继承。

技术分享

多线程时的单例

   可以对进程进行加锁处理,lock 是确保当一个线程位于代码的临界区时,另一个线程不进入临界区,如果其它进程试图进入锁定的代码,则它一直等待(即被阻止),直到该对象审美被释放。

技术分享

 

静态初始化

  C#与公式语言运行库也提供了一种静态初始化方法,这种方法不需要开发人员显式的编写线程安全代码,即可解决多线程环境下它是不安全的问题。

技术分享

这样写解决了两个问题:全局访问和实例化控制。Intance 变量标记为Readonly ,这意味着只能在静态初始化期间或在类构造函数中分配变量。

对象的继承关系在编译时就定义好了,所以无法在运行时改变从父类继承的实现,子类的实现与它的父类有着密切的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化,当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其它更合适的类替换,这种依赖关系限制了灵活性并最终限制了复用性。

有了新锤子,所有的东西看上去都成了钉子。

复制粘贴是最容易的编程,也是最没有价值的编程。

 

单例模式(Singleton)

标签:

原文地址:http://www.cnblogs.com/wisdo/p/4263800.html

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