设计模式之单件模式

单件模式

内容:

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

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

UML类图:

设计模式之单件模式_第1张图片

优点:

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

适用情境:

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

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

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

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

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

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


你可能感兴趣的:(设计模式)