微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

单例模式

 // 典型的单例模式例子(懒汉式)
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;
	}
}

原文地址:https://www.jb51.cc/javaschema/284861.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐