我在Java工作,我看到了很多設計模式,並試圖適應我的問題,但不知何故,我找不到好的設計模式。設計模式替換嵌套開關/ ifelse
這些例子包我收到:
{String robot, String action, int duration}
{"Humanoid", "Forward", 2}
{"Humanoid", "Backward", 5}
{"Snatcher", "Grab"}
這是我現在的代碼:
if "humanoid" {
if "forward" {
humanoid.forward(duration);
}
if "backward" {
humanoid.backward(duration);
}
...
}else if "snatcher" {
if "forward" {
snatcher.forward(duration);
}
if "grab" {
snatcher.grab();
}
}
elseif ...
什麼是動態地做到這一點的最好方法是什麼?
我不想每次添加一個節點到我的ifelse中,我想在嵌套的ifelse中添加一個新的機器人及其所有可能的函數。
謝謝!
編輯
同時,我被要求將問題分爲兩部分。機器人類型之間的切換將在其他地方完成,我將使用策略模式根據機器人在不同類型的動作之間切換。
無論如何,感謝所有的答案!我相信這會對其他人有用!
什麼是「人形」和「狙擊手」?他們是同一類的實例,還是共享一個共同的超類,還是完全不相關? – vaughandroid