在 Java 编程语言中,使用枚举作为单例提供了一种便捷的方法来确保只有一个实例存在一个类。然而,可以采用不同的方法来使用枚举来实现这种单例模式,从而导致功能和用法略有不同。
<code class="java">public enum Elvis { INSTANCE; private int age; public int getAge() { return age; } }</code>
中通过这种方法,创建了 INSTANCE 字段,有效地定义了 Elvis 枚举的单例实例。私有构造函数限制枚举定义之外的实例化。要访问实例,可以使用 Elvis.INSTANCE.getAge()。
<code class="java">public enum Elvis { INSTANCE; private int age; public static int getAge() { return INSTANCE.age; } }</code>
这里,INSTANCE 字段和以前一样是私有的。但是,我们没有在枚举实例上公开 getter,而是提供了公共静态方法 getAge()。调用 Elvis.getAge() 会检索枚举实例的年龄属性。
方法 1:
方法 2:
将枚举用作单例的最佳方法取决于特定的用例。
一般来说,当功能是独立的时,请考虑使用静态方法并且不需要枚举类的显式实例。对于实例的属性至关重要并且需要直接访问的情况,第一种方法可能更合适。
以上是Java 中的枚举作为单例:哪种实现最适合您?的详细内容。更多信息请关注PHP中文网其他相关文章!