单例设计模式

 /*
 * 单例设计模式:解决一个类在内存中只存在一个对象的问题
 *
 * 1.私有化构造函数
 *         先禁止其他程序建立该类对象
 * 2.在类中创建一个本类对象
 *         在本类中自定义一个对象供其他程序访问
 * 3.提供一个方法可以获取到该对象
 *         对外提供访问方式,方便其他程序对自定义对象的访问
 */

/*
 * 饿汉式:
 * 		开发一般用饿汉式,简单安全
 * 		类一进内存,就创建了对象
 */
class Single{
	private static Single single = new Single();
	
    private Single(){}
	
	public static Single getInstance(){
		return single;
	}
}
/*
 * 懒汉式:
 * 		对象在方法被调用时,才初始化,也叫做对象的延时加载
 * 		类进内存,对象还未存在,调用了getInstance方法时,才建立对象
 */
class Single{
	private static Single single;

	private Single(){}
	
	//synchronized:一个程序进来调用,另一个程序就会被挡在外面进不来
	//缺点:程序效率大大降低
//	public static synchronized Single getInstance(){
//		if(single == null){
//			single = new Single();
//			return single;
//		}
//	}
	
	public static Single getInstance(){
		//第二个程序进来时直接判断到single不为空,判断锁的次数减少了
		if(single == null){
			synchronized(Single.class){
				if(single == null){
					single = new Single();
				}
			}
		}
	}
}

上一篇:TechRoad_oneStep_0515


下一篇:大数据技术原理与应用之【NoSQL数据库】习题