Singleton模式学习

动机(Motivation)

在软件系统中,经常有这样一些类,必须保证它们在系统中只存在一个类的实例,才能确保它们逻辑的正确性,以及良好的效率

如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例。

这应该是类设计者的责任,不是类使用者的责任

意图(Intent)

保证一个类仅有一个实例,并提供一个实例的全局访问点。

通用实现:

1.静态初始化

Code

2.延迟初始化Singleton

Code

注意:

    Singleton模式的实例构造器可以设置成protected允许子类派生

    Singleton模式一般不要支持ICloneable接口

    Singleton模式一般不要支持序列化,因为这样可能产生多个实例

    Singleton模式只考虑到对象创建的管理,没有考虑对象销毁的管理。就支持垃圾回收的平台和对象的开销来看,我们一般没有必要对其销毁进行特殊的处理。

posted @ 2009-04-30 12:54  网络渔夫  阅读(228)  评论(0编辑  收藏  举报