【问题标题】:Should I use one singleton for different purposes?我应该将一个单例用于不同的目的吗?
【发布时间】:2015-03-06 14:01:44
【问题描述】:
好的,堆栈溢出。
我必须将单例用于数据库和互联网处理。对这些使用一个单例(并且在我的单例类中弄得一团糟)或两个不同的单例(并复制一些单例代码)是一种好习惯。
提前致谢。
【问题讨论】:
标签:
java
design-patterns
optimization
singleton
refactoring
【解决方案2】:
是的,你可以创建一个枚举说
public ProcessManager{
DB_PROCESS {
public void process(){
... specific code for db
commonCode();
..specific code for DB
}
},
NETWORK_PROCESS{
public void process(){
... specific code for network
commonCode();
...specific code for network
}
};
public void process(){
}
public void commonCode(){
... common code
}
}
怎么打电话?
ProcessManager.DB_PROCESS .process();
ProcessManager.NETWORK_PROCESS.process();
记住枚举是实现单例类的最佳方式(effective-java-2nd-edition)