0

我目前正在为带有 GWT 的 NAO 机器人设计一个遥控器,并且我正在寻找通过 RPC 执行按钮的假定方法的最佳实践。目前我正在检查带有 event.getSource() 标题的按钮名称。但这会导致大量的 if else 语句。我怎么能做得又好又整洁?;)

4

2 回答 2

1

您可以使用命名良好的方法和一些方法反射。

假设您有名为:action1 action2 action3 的按钮

如果这是本地的,您可以为每个添加不同的侦听器。因为它很遥远,我知道你只知道名字。

在您的远程 impl 类中有方法调用:

doAction1 doAction2 doAction3

在你得到远程调用的地方看名字,把初始化字母变成大写,加上do然后得到方法。您甚至可以按名称缓存 Map 中的方法

地图

获得方法后,在一个实例工作者上调用它

于 2013-04-12T12:13:01.533 回答
1

您可以使用枚举或整数作为您使用 Button 构造函数设置的标识符。然后在服务器端,您可以使用 switch case 语句保存一些代码行。

  public enum MyButtons {
  WALK,
  SIT,
   ...
   }
[...]
 //ON CLIENT
 Button whatever = new Button(MyButtons.WALK);

 //ON SERVER
 MyButtons action = whatever.getType(); 
// getType() should provide the value from the constructor


 switch(action)
   {
    case WALK : doStuff();
    case SIT : doStuff();
     ...
   }
于 2013-04-12T14:13:19.300 回答