Java 为多个按钮实现ClickHandler的最佳实践

Java 为多个按钮实现ClickHandler的最佳实践,java,gwt,handler,rpc,Java,Gwt,Handler,Rpc,我目前正在为一个使用GWT的NAO机器人设计一个遥控器,我正在寻找通过RPC执行假定的按钮方法的最佳实践。目前,我正在检查标题为event.getSource()的按钮名称。但这导致了大量的if-else语句。我怎么能把它做得又好又整洁呢?;) 您可以使用命名良好的方法和一些方法反射 假设您的按钮名为: 行动1 行动2 行动3 如果这是本地的,您可以为每个端口添加不同的侦听器。因为它很遥远,我知道你只知道名字 在远程impl类中,调用以下方法: 行动1 行动2 行动3 在获取远程调用的地方,查看

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

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

假设您的按钮名为: 行动1 行动2 行动3

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

在远程impl类中,调用以下方法:

行动1 行动2 行动3

在获取远程调用的地方,查看名称,将init字母大写,添加do,然后获取方法。您甚至可以按名称在映射中缓存方法

地图


一旦你有了这个方法,在单实例worker上调用它。你可以使用一个枚举或一个整数作为你用按钮构造函数设置的标识符。然后在服务器端,你可以用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();
     ...
   }

想再解释一下吗?这个问题有点模糊。我想你想要的是一种将命令发送到服务器端代码并从那里控制机器人的方法?您当前的实现(或设计)是什么。据我所知,按钮是在远程位置单击的,您希望服务器端的一些代码比一堆if-then更优雅?它当前看起来是这样的:
if(button.title==“walk”)//做其他事情if(button.title==“sitdown”)//做其他事情
等等。。。我想有更好的方法可以做到这一点,所以你认为所有按钮都有不同的侦听器?遥控器上大约有15个按钮,这需要很多代码,不是吗?我的问题是,它是如何在其他有很多按钮的网站上实现的?我有很多侦听器的代码,并建议您将其作为不同操作的解决方案。在JVM或您的代码repo中几乎没有超过15个或100个类。将使代码清晰,不那么混乱