单列模式的要点:
1.单列模式确保程序中一个类最多有一个实例。
2.单例模式提供全局访问该单列的点(类的静态方法)。
3.java 中实现单列模式需要一个私有构造器,一个static方法返回实例,一个static变量。
4.注意:如果有多个类加载器可能导致单例模式失效产生多个实例。
许久不写单列,突然要去写个单例,我会写出这种不安全的:
public class SingleMode {
private static SingleMode uniqueSingleMode;
private SingleMode(){
}
public static SingleMode getInstance(){
if (uniqueSingleMode == null){
uniqueSingleMode = new SingleMode();
}
return uniqueSingleMode;
}
}
这样的写法不能保证在多线程的并发访问的情况下只生成一个单列。
通常单例模式分恶汉模式和懒汉模式,区分就是需不需要提前实例化。
下面是一个恶汉模式:
public class HungrySingleMode {
private static HungrySingleMode hungrySingleMode = new HungrySingleMode();
private Hungr