单例设计模式

  单例设计模式是一种常用的软件设计模式。在它的核心结构中包含一个被称为单例的特殊类。通过单例设计模式可以保证系统中一个类有且只有一个实例而且该实例易于被外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能有一个实例的话,单例设计模式是最好的解决方案。

   当一个类的实例可以有且只有一个的时候就可以使用它,为什么使用它?有人说是为了节约内存,但是这只是单例带来的一个好处,只有一个实例确实减少了内存的占用,可是我认为这不是使用单例模式的理由。我认为使用单例的时机是当实例存在多个会引起程序逻辑错误的时候使用。比如类似有序的号码生成器这样的东西,

以下例子来源:

1.懒汉试:http://www.cnblogs.com/mongo/p/4546048.html

2.饿汉式:

运算结果:

 

 

有点:  (1)实例控制:单例模式会阻止其他对象实例化其自己的单例对象的副本,从而保证所有的对象都访问唯一的实例.

  (2)灵活性:因为类控制了实例化过程,所以类类可以灵活更改实例化过程。

缺点:

   (1)开销:虽然数量少,但如果每次对象请求引用时都要检索是否存在类的实例,仍将需要一些开销。可以使用静态初始化解决这个问题。

   (2)可能混淆:使用单例对象时,开发人员必须记住自己不能使用new关键字实例化对象。因为可能无法访问库源代码,因此应用程序开发人员可能会意外发现无法直接实例化此类。

 

posted @ 2015-11-12 19:41  你猜我是谁109  阅读(474)  评论(0编辑  收藏  举报