单件模式
2008-02-29 16:34
162 查看
是用来创建一个需要全局唯一实例的模式。只是需要纠正一点。singleton模式中,构造函数应该是protected.这样子类才可以扩展这个构造函数。
单件模式主要应用在以下场合:
对于一个类,占用的系统资源非常多。而且这些资源可以被全局共享,则可以设计为singleton模式,强迫全局只有一个实例
对于一个类,需要对实例进行计数。可以在createInstance中进行
并可以对实例的个数进行限制。
对于一个类,需要对其实例的具体行为进行控制,例如,期望返回的实例实际上是自己子类的实例。这样可以通过Singleton模式,对客户端代码保持透明。
用静态类可以代替单件吗
1.静态成员:
属性,方法和字段是对象实例所特有的,静态成员可看作是类的全局对象。 静态属性和字段可访问独立于任何对象实例的数据,静态方法可执行与对象类型相关而与对象实例无关的命令。使用静态成员时,不需要实例化对象。且不能用实例来调用静态字段,属性,方法。
2.静态类:
只包含静态成员,不能实例化,密封,不需要构造函数的定义
单件模式主要应用在以下场合:
对于一个类,占用的系统资源非常多。而且这些资源可以被全局共享,则可以设计为singleton模式,强迫全局只有一个实例
对于一个类,需要对实例进行计数。可以在createInstance中进行
并可以对实例的个数进行限制。
对于一个类,需要对其实例的具体行为进行控制,例如,期望返回的实例实际上是自己子类的实例。这样可以通过Singleton模式,对客户端代码保持透明。
用静态类可以代替单件吗
1.静态成员:
属性,方法和字段是对象实例所特有的,静态成员可看作是类的全局对象。 静态属性和字段可访问独立于任何对象实例的数据,静态方法可执行与对象类型相关而与对象实例无关的命令。使用静态成员时,不需要实例化对象。且不能用实例来调用静态字段,属性,方法。
2.静态类:
只包含静态成员,不能实例化,密封,不需要构造函数的定义
相关文章推荐
- OGRE中的STL和单件设计模式
- 设计模式(二)单件模式Singleton(创建型)
- Head First 设计模式(五)单件模式
- Singleton(简单的单件模式) C#源代码
- 单件模式
- JavaScript设计模式之单件模式介绍
- 单件模式(Singleton)和锁定(lock)
- 单件模式(Singleton Pattern)(二):HeadFirst中的巧克力工厂的设计
- 设计模式-单件模式
- 关于动态单例设计模式或动态单件设计模式—Singleton
- 闲话单件模式
- 单件模式
- VB.net设计模式之单件模式(singleton)
- 设计模式学习笔记(8):单件模式
- 单件模式之土著人的可乐瓶
- 扯淡设计模式之单件模式
- 单件模式(Singleton)的变体Meyers模式
- 单件模式与智能指针、友元类的结合
- 单件模式的相关概念
- 《Head First 设计模式》单件模式