小编典典

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

java

我具有使用命令模式封装在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");

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

谢谢。


阅读 231

收藏
2020-11-26

共1个答案

小编典典

Command模式规定了一个对象,该对象在创建后就可以不带任何参数地执行(例如:RunnableCallable),但是,没有什么可以阻止在创建过程中传递参数的。因此您只需将msg参数从execute()方法移至命令的构造函数即可。

在“命令”模式的典型用法中,命令是在一个位置创建并在另一位置执行。创建逻辑已参数化;执行逻辑不是。

2020-11-26