Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过向其传递运行时参数来使用命令模式_Java_Spring_Design Patterns_Command Pattern - Fatal编程技术网

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

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

我有使用命令模式封装在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");
也许我不应该使用命令模式,而考虑其他事情?建议


谢谢。

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


在命令模式的典型使用中,命令在一个位置创建,在另一个位置执行。创建逻辑参数化;执行逻辑不正确。

我正在为此使用Spring。我正在用高级语言创建这些命令实体。我不能只在执行时提供那些高级运行时参数。问题是我有一个键对象存储的映射,通过操作键我知道要执行哪个命令。我正在获取调用器类上的操作键。我的意思是,在初始化我的应用程序时,我正在其他地方创建这些对象。而不是基于行动,我知道该用哪一个。在使用时间(运行时)上,我需要传递将在命令对象上执行的参数。我认为您陷入了一个错误。我的建议是花些时间思考你真正想要解决的问题,然后更新这个问题或者问一个新问题。你说得对。请检查我的其他问题: