1
我看不到任何命令模式類,例如調用者,接收者在以下鏈接的接受答案中出現Long list of if statements in Java。我已經接受了接受的答案來解決我的30+ if/else語句。命令模式說明
我有一個存儲庫,我試圖通過DTOs保存到數據庫。我希望存儲庫調用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 –