单实例模式(singleton)代码

package cn.by.DesignModel.Singleton;
/**
 * 饿汉式
 *
 */
public class SingleMod2 {
 // 类加载时就建立一个该类对象,也是唯一的一个
 private static SingleMod2 single = new SingleMod2();
 // 防止别人通过 new 关键字建立该类对象 , 所以声明为 private
 private SingleMod2() {}
 
 
 /**
  * 得到一个该类对象
  * synchronized 为多线程同步互斥访问
  * @return  对象引用
  */
 public synchronized static SingleMod2 getInstance() {
  return single;
 }
 
 
 
 
package cn.by.DesignModel.Singleton;
 
/**
 * 懒汉式
 *
 */
public class SingleMod {
 
 // 因为要返回一个唯一的该类对象,所以定义为静态的
 private static SingleMod single;
    // 私有初始化,防止别人通过 new 产生一个该类对象
 private SingleMod() {}
 
 /**
  * 获取该类的对象 ( 唯一 )
  * synchronized 是多线程同步访问的互斥
  * @return  返回对象引用
  */
 public synchronized  static SingleMod getInstance() {
  // 为空产生才产生一个该类对象
  if(single == null)
   single = new SingleMod(); 
  return single;
  
 }
 
}
 
 
 
}

你可能感兴趣的:(java,设计模式)