设计模式之单例设计模式
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(静态方法)。 比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 Session 对象。SessionFactory 并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory 就够,这是就会使用到单例模式。 1)饿汉式(静态变量) - 在确定会使用到该实例时,可推荐使用 饿汉式(静态代码块) 2)懒汉式(线程不安全) - 不推荐 懒汉式(线程安全,同步方法) - 效率较低,不推荐 懒汉式(线程不安全,同步代码块) - 不推荐 3)双重检查 - 推荐使用 4)静态内部类 - 推荐使用 5)枚举 - 推荐使用 //饿汉式(静态变量) class Singleton{ //1.构造器私有化(防止new) private Singleton(){} //2.本类内部创建对象实例 private static final Singleton singleton = new Singleton(); //3.提供公有静态方法,返回实例对象 public static Singleton getInstance(){ return singleton; } } 优缺点: 1)优点:写法比较简单