一下是单态的设计模式的两种写法
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private Singleton(){}
private static Singleton instance = null;
//这里提供一个同步的得到实例的方法,通过类直接访问
public static synchronized Singleton getInstance() {
if (instance==null)//第一次调用时初始Singleton,以后就不用再生成了
instance=new Singleton();
return instance;
}
}
一般第一种情况更安全,而且常用
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private Singleton(){}
private static Singleton instance = null;
//这里提供一个同步的得到实例的方法,通过类直接访问
public static synchronized Singleton getInstance() {
if (instance==null)//第一次调用时初始Singleton,以后就不用再生成了
instance=new Singleton();
return instance;
}
}
一般第一种情况更安全,而且常用
本文介绍了单态模式的两种实现方式:一种是在类加载时初始化实例,另一种是在首次调用时进行懒加载。前者通常被认为更安全且使用更广泛。
502

被折叠的 条评论
为什么被折叠?



