在 Java 中使用 Enum 创建单例:差异和注意事项
在面向对象编程中,单例是保证只存在一个的类实例。 Java 允许使用枚举创建单例。虽然实现此目的有不同的方法,但有两个显着的变化包括:
选项 1:实例方法
<code class="java">public enum Elvis { INSTANCE; private int age; public int getAge() { return age; } }</code>
此方法创建一个私有实例变量(年龄)并公开一个 getter 方法 (getAge) 来访问它。单例访问是通过 Elvis.INSTANCE 实现的。
选项 2:静态方法
<code class="java">public enum Elvis { INSTANCE; private int age; public static int getAge() { return INSTANCE.age; } }</code>
在此变体中,age 变量在枚举中仍然是私有的,但是它是通过静态方法(getAge)访问的。访问单例是通过 Elvis.getAge() 完成的。
差异和注意事项
实例方法:
静态方法:
绑定注意事项:
最优性:
以上是单例的实例方法与静态方法:哪一个最适合 Java 中基于枚举的实现?的详细内容。更多信息请关注PHP中文网其他相关文章!