1
コマンドパターンクラスは表示されません。以下のリンクLong list of if statements in Javaの受け入れられた回答に明示された呼び出し元、受取人。私は30 + if/else文を解決するための受け入れられた答えに行ってきました。コマンドパターンの明確化
データベースに保存するDTOを渡そうとしているリポジトリが1つあります。リポジトリがDTOの正しい保存メソッドを呼び出すようにしたいので、実行時にインスタンスのタイプをチェックしています。ここで
はリポジトリ
private Map<Class<?>, Command> commandMap;
public void setCommandMap(Map<Class<?>, Command> commandMap) {
this.commandMap = commandMap;
}
とのCommandMap
commandMap.put(Address.class, new CommandAddress());
commandMap.put(Animal.class, new CommandAnimal());
commandMap.put(Client.class, new CommandClient());
し、最終的に
public void getValue(){
commandMap.get(these.get(0).getClass()).save();
}
使用するサービスクラスを節約する方法を移入します方法で実装したものですRepoはcommandMapを登録します。
受け入れられた回答は、コマンドパターンの一種の(近似した)実装を表していますか?
私は最初のオプションに行くでしょう、それはコマンドパターンではありません、いくつかの答えは、誤解を招くだけでなく、私はパターンからいくつかのアイデアを使用しますが、パターンとしてそれらを呼び出すことはありません。 –
はおそらくhttps://industriallogic.com/xp/refactoring/conditionDispatcherWithCommand.htmlのようです –