目标
- 设计一个类,只能生成该类的一个实例
- 单例模式
关键点
- 一个类只有一个实例,这是最基本的
- 它必须自行创建这个实例
- 它必须自行向整个系统提供这个实例
实现方式
- 懒汉模式(类加载时不初始化)
- 饿汉模式(在类加载时就完成了初始化)
###懒汉式单例模式
懒汉模式代码如下:
|
|
关键点
关键点:(代码注释上已给出)
- 构造函数定义为私有—不能在别的类中来获取该类的对象,只能在类自身中得到自己的对象
- 成员变量为static的,没有初始化—类加载快,但访问类的唯一实例慢,static保证在自身类中获取自身对象
- 公开访问点getInstance:public和synchronized的—public保证对外公开,synchronized同步保证多线程时的正确性(因为类变量不是在加载时初始化的)
###饿汉式单例模式
饿汉模式代码如下:
|
|
关键点
关键点:(代码注释上已给出)
- 构造函数定义为私有—不能在别的类中来获取该类的对象,只能在类自身中得到自己的对象
- 静态私有成员–在类加载时已初始化
- 公开访问点getInstance—–不需要同步,因为在类加载时已经初始化完毕,也不需要判断null,直接返回
More info: 更多