单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。单例模式也叫单态模式。
通常单例模式在 Java 语言中,有两种构建方式:
- 懒汉式。指全局的单例实例在第一次被使用时构建。
- 饿汉式。指全局的单例实例在类装载时构建。
以下方式均线程安全:
懒汉式 (static)
不高效,因为在任何时候只能有一个线程调用 getInstance() 方法。但是同步操作只需要在 instance == null 调用时才被需要,即第一次创建单例实例对象时。双重检验锁改进。
public class Singleton { |