在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中文網其他相關文章!