单例模式详解
视频:http://www.tudou.com/programs/view/sv5PmqHteCc/
oo思想:隔离变化,职责清晰
一、模式分类
1、从目的来看:
1)创建型(Creational):负责对象创建
2)结构型(Structual):处理类和对象间的组合
3)行为型(Behaviral):类与对象交互中的职责分配
2、从范围来看
1)类模式处理类和子类的静态关系
2)对象模式处理对象间的动态关系
二、单例模式:保证一个类仅有一个实例,并提供一个该实例的全局访问点
特点:
1)私有的静态字段
2)私有的构造器
3)共有的静态的获取实例的方法
要点(单线程Singleton模式):
1)Singleton模式中的实例构造器可以设置为protected以允许子类派生
2)Singleton模式一般不要支持ICloneable接口,因为这可能会导致多个对象实例,与Singleton模式的初衷相违背
3)Singleton模式一般不要支持序列会,因为这也有肯能会导致多个对象
4)Singleton模式只考虑到了对象创建的管理,没有考虑对象销毁的管理。就支持垃圾回收的平台和对象的开销来讲,我们一般没有必要对其销毁进行特殊管理
5)不能应对多线程环境:在多线程环境下,使用Singleton模式仍然有可能得到Singleton类的多个实例对象
浙公网安备 33010602011771号