现在的位置: 首页 > 综合 > 正文

设计模式(四)之单例模式

2018年09月17日 ⁄ 综合 ⁄ 共 646字 ⁄ 字号 评论关闭

单例模式

1、描述

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

2、使用场景

在某些情况下,我们可能需要某个类只创建一个对象,即不让用对该类实例化出多余二个实例。比如说我们一栋大楼的管理员,我们需要一个就可以了,每次需要的时候我们都叫那一个,不用每次都new一个新的管理员出来。

3、模式中的角色

单例类(Singleton):只可以创建出一个实例。

4、类图

6、代码实现
package org.sunday.prototype;

/**
 * 
 * @author sunday
 * 2014-1-8
 */
public class Singleton {
	/**
	 * 单例类中包含自身声明的类变量,这个类变量是单例类唯一的实例。
	 */
	private static Singleton singleton;
	
	/**
	 * 构造方法的访问权限是private。为了确保自己其他类中都无法被创建。
	 */
	private Singleton(){}
	
	/**
	 * 单例类负责创建自己唯一的实例,并提供访问该实例类的类方法。
	 * 由于单例类的构造方法被设置为private,所以单例类必须自己负责创建自身声明的实例。
	 * 使用synchronized是为了防止多线程在调用这个类方法时创建多个单例类实例(线程安全)。
	 * @return 单例类的唯一对象
	 */
	public static synchronized Singleton getInstance() {
		if(null == singleton) {
			singleton = new Singleton();
		}
		return singleton;
	}
}

抱歉!评论已关闭.