标签:
单例模式有以下几个特点:
饿汉式单例模式:由于构造函数是私有类型,因此此类不可继承
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