常见的三种单例模式
网站首页 文章专栏 常见的三种单例模式
常见的三种单例模式
编辑时间:2019-10-08 16:18 作者:毛毛小妖 浏览量:285 评论数:4

一、懒汉模式

package com.sy.singleton;

/**
 * 描述: 懒汉模式
 * @author shengyu 
 * @date:2019年5月7日 下午4:33:12
 */
public class SingletonExample1 {

	private SingletonExample1(){
		
	}
	
	private static SingletonExample1 instance = null;
	
	public SingletonExample1 getInstance(){
		if (instance == null) {
			instance = new SingletonExample1();
		}
		return instance;
	}
}

二、饿汉模式

package com.sy.singleton;

/**
 * 描述: 饿汉模式
 * @author shengyu 
 * @date:2019年5月7日 下午4:34:58
 */
public class SingletonExample2 {

	private SingletonExample2(){
		
	}
	
	private static SingletonExample2 instance = new SingletonExample2();
	public SingletonExample2 getInstance(){
		return instance;
	}
}

三、懒汉模式,双重同步锁单例模式

package com.sy.singleton;

/**
 * 描述: 懒汉模式,双重同步锁单例模式
 * @author shengyu 
 * @date:2019年5月7日 下午3:59:15
 */
public class SingletonExample {
	private SingletonExample(){
		
	}
	
	private volatile static SingletonExample instance = null;
	
	public static SingletonExample getInstance(){
		if(instance == null){
			synchronized (SingletonExample.class) {
				if (instance == null) {
					instance = new SingletonExample();
				}
			}
		}
		return instance;
	}
}

 

推荐文章
来说两句吧
最新评论