我具有使用命令模式封装在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");
也许我不应该使用命令模式并考虑其他事情?建议?
谢谢。
Command模式规定了一个对象,该对象在创建后就可以不带任何参数地执行(例如:Runnable或Callable),但是,没有什么可以阻止在创建过程中传递参数的。因此您只需将msg参数从execute()方法移至命令的构造函数即可。
msg
execute()
在“命令”模式的典型用法中,命令是在一个位置创建并在另一位置执行。创建逻辑已参数化;执行逻辑不是。