一. 什么情况下用单例模式 1. 类只需被实例化一次 2. 类能自己创建自己的一个实例 3. 类提供对外的接口,供全局实用 二. 单例用的最多的两种模式 1. 恶汉式:一开始就实例化 public class Singleton( ){ private Singleton ( ){ //在自己内部定义自己一个实例 //注意这是private 只供内部调用 private static Singleton instance = new singleton; } //这里提供了一个供外部访问本class的静态方法 public static Singleton getInstance ( ){ return instance ; } } 2. 懒汉式:需要时才实例化 public class Singleton( ){ private static Singleton instance = null ; public static synchronized Singleton getInstance() { //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次 //使用时生成实例,提高了效率! //synchronized,解决了多线程问题,所以synchronized很重要,不能没有 if (instance==null) instance=new Singleton(); return instance; } //这里提供了一个供外部访问本class的静态方法 public static Singleton getInstance ( ){ return instance ; } }