可复用面向对象编程——SINGLETON(单件)

本文深入探讨了Singleton模式的原理、优势及其实现方式,详细解释了其在确保唯一实例、封装和扩展方面的核心作用。通过具体代码示例展示了如何在不同场景下运用Singleton模式,同时讨论了其与其他设计模式的相互关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
	}

}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值