使用枚举实现单例
单例设计模式确保一个类只有一个实例,提供集中访问。在 Java 中实现单例的一个有趣方法是通过枚举。
考虑以下枚举:
public enum MySingleton { INSTANCE; }
考虑到通常使用构造函数执行实例化,这是如何工作的?答案就在于枚举字段的隐式空构造函数。
显式构造
为了使实例化过程更加明确,我们可以定义一个私有构造函数:
public enum MySingleton { INSTANCE; private MySingleton() { System.out.println("Instance created"); } }
实例化
何时后续代码引用枚举(如 MySingleton.INSTANCE),构造函数仅执行一次,建立单例实例。
public static void main(String[] args) { System.out.println(MySingleton.INSTANCE); }
输出:
Instance created INSTANCE
要点
枚举字段本质上是其枚举类型的实例。它们是在第一次引用枚举时构造的。这种方法提供了一种在 Java 中实现 Singleton 的优雅且类型安全的方法。
以上是如何使用Java枚举来实现单例设计模式?的详细内容。更多信息请关注PHP中文网其他相关文章!