设计模式之单件模式

单件模式

内容:

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

结构:单件模式的结构很简单,只有一个单件类(Singleton),它只能创建出一个实例。

UML类图:


优点:

单件类具有唯一实例,可以很好的控制用户对其访问。

适用情境:

系统希望某个类只能有一个实例时。

单件类模式的实现也比较简单,其在设计上主要有以下特点:

单件类中包含了自身引用的成员变量,该变量通常是私有静态的;

单件类的构造方法是私有的;

单件类自己负责创建这个唯一的实例。

在Java中单件类的设计有两种常用方式

1、在JVM加载单件类时就创建它的唯一的实例。

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

}
2、在单件类提供的方法中创建这个实例,即在需要时才创建这个唯一的实例,但为了防止多线程调用这个方法而产生多个实例,需要就该方法设置为同步方法。

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值