Guiceスタイルの構成システムを使用するサービスロケーターパターンを見た/書き込もうとした人はいますか?
現在、コマンドパターンを使用するGWTプロジェクト(たまたまGWT-RPCを使用)があり、RPCサーブレットは次のようになっています...
public interface TransactionService extends RemoteService {
<T extends Response> T execute(Action<T> action);
}
executeメソッドの現在の実装では、これを行います...
if(action instanceof SomeActionImpl){
doSomeActionImpl((SomeActionImpl)action);
}else if(action instanceof SomeActionImpl2){
doSomeActionImpl2((SomeActionImpl2)action);
}
私がやりたいのは、巨人のifステートメントを取り除く方法を見つけることです。ActionImpl1のクラスをTransactioNServiceの別の実装に委任する必要があることを登録する何らかの方法が必要になります。
何か案は?キーがActionのクラスで、値がServiceImplのクラスであるHashMapにエントリを追加することを考えていました。1つはServiceImplクラスへの参照があり、Guiceを使用してTransactionServiceのインスタンスを取得できます。