所谓单例就是在系统中只有一个该类的实例。
单例模式的核心分以下三个步骤:
构造方法私有化。即不能在类外实例化,只能在类内实例化。
在本类中创建本类的实例。
在本类中提供给外部获取实例的方式。
饿汉模式不管现在需不需要,先创建实例。关键在于“饿”,饿了就要立即吃。
静态常量这里将类的构造器私有化,就不能在外部通过new关键字创建该类的实例,然后定义了一个该类的常量,用static修饰,以便外部能够获得该类实例(通过HungryStaticConstantSingleton.INSTANCE 获得)。也可以不加final关键字,具体看自己的需求。
1 /** 2 * 恶汉模式-静态常量,简洁直观 3 */ 4 public class HungryStaticConstantSingleton{ 5 //构造器私有化 6 private HungryStaticConstantSingleton() { 7 } 8 //静态变量保存实例变量 并提供给外部实例 9 public final static HungryStaticConstantSingleton INSTANCE = new HungryStaticConstantSingleton(); 10 }