单利模式(懒汉和饿汉的区别)

概念单例模式:1构造方法是私有的   2.用私有的静态变量来接收单例

单例模式步骤

①构造方法私有化

②创建变量保存 对象private  static

③提供一个方法 返回对象public  static

1.2饿汉模式:在加载类信息时先创建对象(创建对象速度快),前提构造方法必须私有化

1.3懒汉模式: 在类加载的时候先不创建对象,而是在有人第一次来调用方法获得对象的时候才创建一个对象

class TestLine{
	//目的:只能创建一个对象
	public static void main(String[] args){
			EHan e=EHan.getEHan();
			EHan e1=EHan.getEHan();
			//当instance属性不是私有的时候,可以修改该值,达不到单例的效果
			EHan.eh=null;
			System.out.println(e==e1);//说明是同一个对象true

			LanHan lh=LanHan.getLanHan();
			LanHan h=LanHan.getLanHan();
			System.out.println(lh==h);	//说明是同一个对象true	
	}
}

//饿汉模式:在加载类信息时先创建对象(创建对象速度快),前提构造方法必须私有化
class EHan{
	//privare限于当前类static定义只一份·属于类
  private static EHan eh=new EHan();
			private EHan(){
			}
	//调用此方法只能创建一次对象
	public static EHan getEHan(){
		return eh;
	}
}

//懒汉模式: 在类加载的时候先不创建对象,
//而是在有人第一次来调用方法获得对象的时候才创建一个对象
class LanHan{
		private LanHan(){
		}
		private static  LanHan lan;
	public static LanHan getLanHan(){
		if(lan==null){//null不存在对象就创建对象
			lan=new LanHan();
		}
		return lan; 
	}
}

猜你喜欢

转载自blog.csdn.net/Yangyg_0818/article/details/83757254
今日推荐