这有点棘手。我在我的应用程序中使用状态模式来管理状态。我想在我的应用程序中拥有每个状态的单个实例,但我不想将每个状态类作为单例类。我想到的另一种方法是编写一个StateLocator类。 StateLocator可以是单例,它可以保存所有状态的实例。请指导我看看StateLocator是否是一个很好的解决方案,或者是否有任何其他解决方案,我仍然只能拥有一个状态实例,并且可以避免单身人士。
感谢任何帮助。 e.g。
public interface TestState {
public void onTest();
public void onApprove()
}
class StateA implements TestState {
public void onTest() {
}
public void onApprove() {
}
}
class StateB implements TestState {
public void onTest() {
}
public void onApprove() {
}
}
class StateLocator {
private StateA mStateA;
private StateB mStateB;
StateLocator() {
mStateA = new StateA();
mStateB = new StateB();
}
public TestState getState(int stateType) {
if(stateType == 1) {
return mStateA;
} else {
return mStateB;
}
}
}
答案 0 :(得分:2)
StateLocator,就像你使用它一样,是“注册表”模式
http://martinfowler.com/eaaCatalog/registry.html
对您的设计一无所知,这是避免单身人士的好方法。注册表可以是单身人士(不一定是)。