【设计模式】Java之单例设计模式

1.单例设计模式:一个类只能有一个对象

1.1 创建单例类的步骤:

    1.将构造方法私有化

    2.创建私有的静态成员变量

    3.共有的静态成员方法,提供当前的唯一对象

1.1 创建单例的两种方式:

      1.饿汉式 -- 一开始执行时就先给单例类对象赋值

//方式一:饿汉式  一开始执行,就先给单例类对象赋值
class SingleInstance{
	//在单例类的内部创建了一个私有化对象
	private final static SingleInstance singleInstance = new SingleInstance();
	
	//构造方法私有化
	private SingleInstance() {
				
	}
	//建立一个public方法,将单例类对象提供出去
	public static SingleInstance getSingleInstance() {
		return singleInstance;
	}

	//单例类的功能区

}

    2. 懒汉式 -- 一开始为null,什么时候使用,就什么时候赋值

        懒汉式我们这里讨论考虑线程安全的情况。需要用synchronized关键字进行加锁,保证线程安全。

//懒汉式 
class SingleInstance{
	private static SingleInstance instance = null;
	private SingleInstance() {
		
	}
	public static SingleInstance getInstance() {
		if(instance == null ) {//编写最外层的if,是为尽量少的判断线程同步,提高效率
			synchronized (SingleInstance.class) {//获取当前类的字节码充当同步代码块的锁,让多个线程之间互斥  
				if(instance == null) {
					instance = new SingleInstance();
				}
			}
		}
		return instance;
	}
	//工作位置
}





posted @ 2018-04-04 11:04  Supernova-x  阅读(192)  评论(0)    收藏  举报