singleton

也总结下单例
1.枚举单例
package jse.dp.singleton;
/**
 * @author zfc
 *
 */
public enum EnumSingle {
	//1.定义一个唯一实例
	@Deprecated
	Single;
	//2.收回访问权限
	private EnumSingle(){
		
	}
	//3.给外部一个访问方法
	public static  EnumSingle getSingle(){
		return Single;
	}
}

2.饿汉单例
package jse.dp.singleton;
/**
 * @author zfc
 * 饿汉式单例
 * 此方法以时间换空间,每次进来都要if判断
 */
public class HungrySingle {
	//2.这个类唯一的一个实例作为自己的一个属性,仅仅声明
	private static HungrySingle single;
	//1.收回外部创建实例的权限
	private HungrySingle(){
		
	}
	//3.给个一个方法访问此属性
	public static HungrySingle getHungrySingle(){
		if(single==null){
			single=new HungrySingle();
		}
		return single;
	}
}

3.懒汉单例
package jse.dp.singleton;
/**
 * @author zfc 
 * 2011.7.11
 * 2.懒汉单例
 * 2.1:多次访问的都是一个实例
 * 2.2:该实例初始化时机即static属性初始化的时机,这个类被读入时即初始化
 * 
 */
public class MySingle {
	private static MySingle mySingle=new MySingle();
	
	//1.收回外部能够实例化的权限
	private MySingle(){
		
	}
	//2.提供一个静态方法供外部访问实例
	public static MySingle getMySingle(){
		return mySingle;
	}
}

你可能感兴趣的:(Singleton)