码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式(singleton)

时间:2015-08-09 22:22:45      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

单例模式有以下几个特点:

  • 单例类只能有一个实例
  • 单例类必须自己创建自己的唯一的实例
  • 单例类必须给其他所有其他对象提供这个实例

饿汉式单例模式:由于构造函数是私有类型,因此此类不可继承

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;
	}
}

 使用单例模式的必要条件:一个系统要求一个类只有一个实例时才应当使用单例模式。如果一个类允许有几个不同的实例共存,那么就没有必要用单例模式。

 

单例模式(singleton)

标签:

原文地址:http://www.cnblogs.com/xtsylc/p/4714438.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!