动机: 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性以及良好的效率
适用性:当类只能有一个实例并且客户可以从一个众所周知的访问点访问它时;当这个唯一实例应该是通过子类化可扩展的,并且客户应该无须更改代码就能使用的一个扩展的实例时。
结构:
参与者:
定义一个Instance操作,允许客户访问它的唯一实例;可能创建它自己的唯一实例
协作:
客户只能通过Singleton的Instance操作访问一个singleton的实例
效果:
对唯一实例的受控访问
缩小命名空间
允许对操作和表示的精化
实现:
代码示例如下:
1 |
|