单例模式适用场景:要获得唯一的一个实例对象的时候,使用单例模式。
单例模式是所有模式中最简单的一种。学习单例模式,要知道单例模式的核心点:
①要有一个私有构造器
②声明一个静态对象
③定义一个静态方法来构造对象
所以,通过上面的三个核心点,一个简单的单例模式如下:
这种模式也可称为饿汉单例模式,就是在初始化的时候就创建对象。那相对应的还有懒汉单例模式。懒汉模式,顾名思义,就是在需要的时候才创建对象,不需要的时候不创建。
一般情况下上面的两个小例子实现单例还是可以说的通的,但是如果遇到多线程操作,就无法满足只创建一个实例的要求了。所以,要加上线程安全的设置。
这样虽然加上了同步锁,但是非常影响性能,因为只有第一次需要同步,以后都不在需要同步,而该种方法每次都会同步。
注意:双重检查只适用于JDK1.5以上的版本。