现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

重新设计模式 – Singleton模式

2012-07-19 19:25 工业·编程 ⁄ 共 506字 ⁄ 字号 暂无评论

1、意图

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

2、工作原理

用一个特殊方法来实例化所需的对象。其中最关键的就是这个方法:调用这个方法时,检查对象是否已经实例化。如果已经实例化,该方法仅返回对该对象的一个引用。如果尚未实例化,该方法实例化该对象并返回对此新实例的一个引用。为了确保这是实例化此类型对象的唯一方法,将这个这个类的构造函数定义为保护或者私有的。

3、问题

几个不同的客户对象需要引用同一对象,而且希望确保这种类型的对象数目不超过一个。

4、解决方案

保证一个实例。

5、通用结构

6、参与者

Singleton:定义一个Instance操作,允许客户访问它的唯一实例。

7、协作

Client对象只能通过Instance方法创建Singleton实例。

8、效果

Client对象无需操心是否已存在Singleton实例,这是由Singleton自己控制的。

9、实现

  • 添加一个类的私有的静态成员变量,引用所需的对象(初值为null)。
  • 添加一个公共静态方法,它在成员变量的值为null时实例化这个类(并设置成员变量的值),然后返回该成员变量的值。
  • 将构造函数的状态设置为保护或者私有,从而防止任何人直接实例化这个类。

给我留言

留言无头像?