传统的单例模式有两种:
第一种,优点:简单,可靠。可以保证在一个类加载器中只有一个实例。
缺点:类在被初始化的时候就会创建一个实例,不管以后会不会用到。
但是我个人认为这种缺点说的实在是有点勉强。
首先此类的实例只有在初始化的时候才会创建。网上有很多说的是在被加载的时候创建,这是严重错误的。
关于类的加载和初始化,可以参考类加载器的介绍。
这种缺点成立的情况为,此类被初始化了,但以后我们不会使用,因此白白创建了一个对象。
但是,我认为,初始化而以后不会使用的情况是几乎不太可能发生的。(但是有可能发生)
public class Singleton{
private static Singleton instance = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return instance;
}
}
第二种,可以实现一个类加载器中只有一个实例,因为使用了同步,此方式效率极其低。
public class Singleton{
private static Singleton instance;
private Singleton() {
}
public static