Java 如何通过向其传递运行时参数来使用命令模式
我有使用命令模式封装在diff命令上的功能 我正在使用所需的信息和逻辑创建命令,但我仅在运行时获得一些参数,我需要这些参数来提供我的命令 例如:Java 如何通过向其传递运行时参数来使用命令模式,java,spring,design-patterns,command-pattern,Java,Spring,Design Patterns,Command Pattern,我有使用命令模式封装在diff命令上的功能 我正在使用所需的信息和逻辑创建命令,但我仅在运行时获得一些参数,我需要这些参数来提供我的命令 例如: public class sendMessageToServerCommand implements Command { @Override public void execute(String msg){ sendToServerTheMsg(msg); } } .. Command command=n
public class sendMessageToServerCommand implements Command {
@Override
public void execute(String msg){
sendToServerTheMsg(msg);
}
}
..
Command command=new sendMessageToServerCommand();
command.execute("msg I got on runtime");
也许我不应该使用命令模式,而考虑其他事情?建议
谢谢。命令模式规定了一个对象,该对象在创建后可以不带参数地执行(例如:或),但是,在创建过程中没有任何东西阻止参数的传递;因此,只需将
msg
参数从execute()
方法移动到命令的构造函数中即可
在命令模式的典型使用中,命令在一个位置创建,在另一个位置执行。创建逻辑参数化;执行逻辑不正确。我正在为此使用Spring。我正在用高级语言创建这些命令实体。我不能只在执行时提供那些高级运行时参数。问题是我有一个键对象存储的映射,通过操作键我知道要执行哪个命令。我正在获取调用器类上的操作键。我的意思是,在初始化我的应用程序时,我正在其他地方创建这些对象。而不是基于行动,我知道该用哪一个。在使用时间(运行时)上,我需要传递将在命令对象上执行的参数。我认为您陷入了一个错误。我的建议是花些时间思考你真正想要解决的问题,然后更新这个问题或者问一个新问题。你说得对。请检查我的其他问题: