标签:
单例模式有以下几个特点:
饿汉式单例模式:由于构造函数是私有类型,因此此类不可继承
public class EagerSingleton {
private static final EagerSingleton m_Instance=new EagerSingleton();
/*私有默认构造函数*/
private EagerSingleton(){}
/*静态工厂方法*/
public static EagerSingleton getInstance(){
return m_Instance;
}
}
可以看出这个类被加载的时候,静态变量m_Instance会被初始化,私有构造函数被调用。这个时候,单例类的唯一实例被创建出来了。
懒汉式单例模式:由于构造函数是私有类型,因此此类不可继承
public class LazySingleton {
private static LazySingleton m_Instance=null;
/*私有默认构造函数*/
private LazySingleton(){}
/*静态工厂方法*/
synchronized public static LazySingleton getInstance(){
if( m_Instance==null){
m_Instance=new LazySingleton();
}
return m_Instance;
}
}
使用单例模式的必要条件:一个系统要求一个类只有一个实例时才应当使用单例模式。如果一个类允许有几个不同的实例共存,那么就没有必要用单例模式。
标签:
原文地址:http://www.cnblogs.com/xtsylc/p/4714438.html