如何通过向其传递运行时参数来使用命令模式

How to use Command pattern by passing to it runtime params

我有使用命令模式封装在 diff 命令上的功能。

我正在使用它需要的信息和逻辑创建命令,但是我如何获得一些参数仅在运行时我需要提供我的命令

例如:

public class sendMessageToServerCommand implements Command {

    @Override
    public void execute(String msg){
          sendToServerTheMsg(msg);
    }
}

..
Command command=new sendMessageToServerCommand();
command.execute("msg I got on runtime");

也许我不应该使用命令模式并考虑其他事情?建议 ?

谢谢。

命令模式规定一个对象在创建后可以不带参数执行(例如:Runnable or Callable)但是,没有什么可以阻止在创建过程中传递参数;所以你可以简单地将 msg 参数从 execute() 方法移动到命令的构造函数。

在命令模式的典型使用中,命令在一个地方创建并在另一个地方执行。创建逻辑是参数化的;执行逻辑不是。