![](/img/trans.png)
[英]Is the Single-Element Enum Type Singleton really a widely adopted good idea?
[英]How to use the “single-element enum type” to make this class a singleton?
我有這個類,我用這個單獨的方式:
FlagOfficer.instance().someVariable
這是該類的當前實現:
public class FlagOfficer {
public FlagOfficer() {
}
static FlagOfficer flagOfficer = null;
public static FlagOfficer instance() {
if (flagOfficer == null) {
flagOfficer = new FlagOfficer();
}
return flagOfficer;
}
public boolean getLastBackupDate;
public boolean syncProcessStartedOnce;
}
我現在正在閱讀“Effective Java”一書,他們說實現單例模式的最佳方法是使用單元素枚舉類型
以下是本書的一個示例:
public enum Elvis {
INSTANCE;
public void leaveTheBuilding() { ... }
}
那么如何轉換我的類以便它使用這種模式呢? 我以后如何使用它?
public enum FlagOfficer {
// Enum instances/values should be declared first.
// Use INSTANCE(arg1, ..) if constructor accepts agruments.
INSTANCE;
// Constructor can accept arguments as well.
private FlagOfficer() {
}
private Date lastBackupDate;
private boolean syncProcessStartedOnce;
public Date getLastBackupDate() {
return lastBackupDate;
}
public boolean isSyncProcessStartedOnce() {
return syncProcessStartedOnce;
}
}
用法:
FlagOfficer fo = FlagOfficer.INSTANCE;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.