- 定义
单件模式是指确保一个类只有一个实例,并提供全局访问点。 - 案例分析
有一些对象只能有一个实例,比如线程池、打印机、显卡、注册表等。经典的单件模式实现如下:
public class Singleton{
private static Singleton uniqueInstance;
private Singleton(){}
public static Singleton getInstance(){
if(uniqueInstance == null){
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}
在多线程情况下,getInstance()方法可能执行两次导致有两个uniqueInstance实例。这时只要把getInstance()变成同步(synchronized)的就可以了.
public class Singleton{
private static Singleton uniqueInstance;
private Singleton(){}
public static Singleton getInstance(){
if(uniqueInstance == null){
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}