一、单例模式

1.饿汉式单例模式:在类初始化时,已经自行实例化

class EagerSingleton {    
 private static final EagerSingleton m_instance = new EagerSingleton();    

 /** * 私有的默认构造子 */  
 private EagerSingleton() {    
  }    

 /**
   * * 静态工厂方法
   */  
 public static EagerSingleton getInstance() {    
   return m_instance;    
  }    
}  

2.懒汉式单例模式:在第一次调用的时候实例化

class LazySingleton {    
 // 注意,这里没有final    
 private static LazySingleton m_instance = null;    

 /** * 私有的默认构造子 */  
 private LazySingleton() {    
  }    

 /**
   * * 静态工厂方法
   */  
 public synchronized static LazySingleton getInstance() {    
   if (m_instance == null) {    
      m_instance = new LazySingleton();    
    }    
   return m_instance;    
  }    
}