これは少しトリッキーになってきています。アプリケーションで状態パターンを使用して状態を管理しています。アプリケーションで各状態のインスタンスを 1 つにしたいのですが、各状態クラスをシングルトン クラスとして作成したくありません。私が考えているもう 1 つのアプローチは、StateLocator クラスを作成することです。StateLocator はシングルトンにすることができ、すべての状態のインスタンスを保持できます。StateLocator が良い解決策に見えるかどうか、または状態のインスタンスを 1 つだけ持つことができ、シングルトンを回避できる可能性がある他の解決策があるかどうかを教えてください。
どんな助けでも大歓迎です。例えば
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;
}
}
}