设计模式---单例

package com.dream.design;

/**
 * @author zxg
 *  饿汉模式 1构造方法私有 2创建一个静态对象 3提供拿对象的方法
 */
public class Sigleton {
	private Sigleton(){
		
	}
	private Sigleton sigleton = new Sigleton();
	
	public Sigleton getInstance(){
		return sigleton;
	}

}

   

package com.dream.design;

/**
 * @author zxg
 *  懒汉模式 1 构造方法私有化  2提供一个私有对象 3提供取对象方法
 */
public class Sigleton2 {
   private Sigleton2(){
	   
   }
   private Sigleton2 sigleton;
   
   public Sigleton2 getInstance(){
	   if(sigleton==null){
		   return new Sigleton2();
	   }else{
		   return sigleton;
	   }
   }
}

   懒汉模式跟饿汉模式区别

  1 加载方式不同,饿汉模式在类加载时候就生成对象,懒汉模式在取对象的时候才生成

  2 线程安全问题,饿汉式安全的,懒汉线程不安全的

  3 故饿汉模式在加载时候速度慢,运行时候速度快,懒汉模式相反

猜你喜欢

转载自zhizhi555555.iteye.com/blog/2223214