我有这个课程,我用这种方式作为单身人士:
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() { ... }
}
那么如何转换我的类以便它使用这种模式呢?我之后如何使用它?
答案 0 :(得分:10)
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;