加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[设计模式]单一实例模式(Singleton)

发布时间:2020-12-13 22:29:23 所属栏目:百科 来源:网络整理
导读:单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。 保证一个类仅有一个实例,并提供一个访问它的全局访

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。保证一个类仅有一个实例,并提供一个访问它的全局访问点。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

单例模式

 // 典型的单例模式例子(懒汉式)
public class Singleton {
	private static Singleton instance = null;	// 不能为final,因为getInstance()中还会更改其值
	
	// 构造方法私有化是为了在外面不能实例化该类
	private Singleton() {
		
	}
	
	// 单例模式关键代码
	public static Singleton getInstance() {
		if (instance == null) {		// 保证性能
			synchronized(Singleton.class){		// 防止多线程并发时出现问题
				if(instance == null)
					instance = new Singleton();		
			}
		}
		
		return instance;
	}
}

单例模式分为三种情况:懒汉式(常用)、饿汉式、双重锁模式

// 饿汉式单例模式
public class Singleton {
	private static final Singleton instance = new Singleton();
	
	private Singleton() {
		// do something
	}
	
	public static Singleton getInstance() {
		return instance;
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读