【发布时间】:2011-11-08 09:32:00
【问题描述】:
我正在使用 Java,我已经看到了很多设计模式并试图解决我的问题,但不知何故我就是找不到好的那个。
这些是我收到的示例数据包:
{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 添加一个节点。
谢谢!
编辑
与此同时,我被要求将问题分成两部分。机器人类型之间的切换将在别处完成,我将使用策略模式根据机器人在不同类型的动作之间切换。
不管怎样,谢谢大家的回答!我相信它会在其他时间或对其他人有用!
【问题讨论】:
-
humanoid和snatcher是什么?它们是同一个类的实例,还是共享一个共同的超类,还是完全不相关?
标签: java design-patterns nested switch-statement