1.诠释
SINGLETON模式:让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可
以被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法。
2.实用范围
• 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
• 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个
扩展的实例时。
3.好处
• 对唯一实例的受控访问
因为SINGLETON类封装它的唯一实例,所以它可以严格的控制
• 缩小名空间
SINGLETON模式是对全局变量的一种改进。它避免了那些存储唯一实例的全局变量污染名空间。
• 允许对操作和表示的精化
SINGLETON类可以有子类,而且用这个扩展类的实例来配置一个应用是很容易的。你可以用你所需要的类的实例在运行时刻配置应用。
• 允许可变数目的实例
这个模式使得你易于改变你的想法,并允许SINGLETON类的多个实例。此外,你可以用相同的方法来控制应用所使用的实例的数目。只有允许访问SINGLETON实例的操作需要改变。
• 比类操作更灵活
另一种封装单件功能的方式是使用类操作(即C + +中的静态成员函数
或者是S m a l l t a l k中的类方法)。但这两种语言技术都难以改变设计以允许一个类有多个实例。此外,C + +中的静态成员函数不是虚函数,因此子类不能多态的重定义它们。
4.实现
package { public class SyncManager extends Sprite { public function SyncManager():void { } public static function getInstance():SyncManager{ if(instance==null){ instance = new SyncManager(); } return instance; } }