我有这个类,我用这个单独的方式:
FlagOfficer.instance().someVariable
Run Code Online (Sandbox Code Playgroud)
这是该类的当前实现:
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;
}
Run Code Online (Sandbox Code Playgroud)
我现在正在阅读"Effective Java"一书,他们说实现单例模式的最佳方法是使用单元素枚举类型
以下是本书的一个示例:
public enum Elvis {
INSTANCE;
public void leaveTheBuilding() { ... }
}
Run Code Online (Sandbox Code Playgroud)
那么如何转换我的类以便它使用这种模式呢?我以后如何使用它?
nhy*_*ted 11
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;
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
FlagOfficer fo = FlagOfficer.INSTANCE;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2031 次 |
| 最近记录: |