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

单例模式

时间:2017-06-24 14:39:53      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:fonts   ==   size   冲突   使用   static   避免   系统资源   instance   

单例模式属于创建型模式。

意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。

优点:①在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 

      ②避免对资源的多重占用(比如写文件操作)。

缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。

UML图:

技术分享

代码如下:

懒汉式(线程安全):

public class Singleton {  
    private static Singleton instance;  
    private Singleton (){}  
    public static synchronized Singleton getInstance() {  
	    if (instance == null) {  
	        instance = new Singleton();  
	    }  
	    return instance;  
    }  
} 

 饿汉式(线程安全):

public class Singleton {
	private static Singleton instance = new Singleton();
	private Singleton(){};
	public static Singleton getInstance() {
		return instance;
	}
}

 

单例模式

标签:fonts   ==   size   冲突   使用   static   避免   系统资源   instance   

原文地址:http://www.cnblogs.com/linguodan/p/7073231.html

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