5

従来のコードには、イベントとオブジェクト タイプに依存する if else ブロックの長いコードがあります。

if(event == A && objectType == O1){
.....
}
else if (event == A && objectType == O2){
 ....
}
else if (....)
....
....

導入する条件が増えるにつれ、このロジックを各条件のコマンド パターンに置き換えることを考えていました。ただし、必要なクラスの数は、(イベントの数) * (オブジェクト タイプの数) になります。このコードをリファクタリングする簡単な方法はありますか?

4

2 に答える 2

6

eventandを囲むクラスを作成し、 andobjectTypeを実装.equals().hashCode()ます。実行ブロックごとにジェネリック クラスも作成します。

次に、 a を使用できるようにMapなり、単純なルックアップで実行に必要なものが返されます。

于 2013-06-14T11:34:41.460 に答える