Java模式设计之单例模式(一)
http://tech.ddvip.com 2006年11月24日 社区交流
本文详细介绍Java模式设计之单例模式(一)
这些资源管理器构件必须只有一个实例,这是其一;它们必须自行初始化,这是其二;允许整个系统访问自己这是其三。因此,它们都满足单例模式的条件,是单例模式的应用。
一个例子:Windows 回收站
Windows 9x 以后的视窗系统中都有一个回收站,下图就显示了Windows 2000 的回收站。

在整个视窗系统中,回收站只能有一个实例,整个系统都使用这个惟一的实例,而且回收站自行提供自己的实例。因此,回收站是单例模式的应用。
双重检查成例
在本章最后的附录里研究了双重检查成例。双重检查成例与单例模式并无直接的关系,但是由于很多C 语言设计师在单例模式里面使用双重检查成例,所以这一做法也被很多Java 设计师所模仿。因此,本书在附录里提醒读者,双重检查成例在Java 语言里并不能成立,详情请见本章的附录。
单例模式的结构
单例模式有以下的特点:
.. 单例类只可有一个实例。
.. 单例类必须自己创建自己这惟一的实例。
.. 单例类必须给所有其他对象提供这一实例。
虽然单例模式中的单例类被限定只能有一个实例,但是单例模式和单例类可以很容易被推广到任意且有限多个实例的情况,这时候称它为多例模式(Multiton Pattern) 和多例类(Multiton Class),请见"专题:多例(Multiton )模式与多语言支持"一章。单例类的简略类图如下所示。

由于Java 语言的特点,使得单例模式在Java 语言的实现上有自己的特点。这些特点主要表现在单例类如何将自己实例化上。
责编:豆豆技术应用
正在加载评论...