假设我有一个包含如下内容的文件,它是一些配置信息和一些命令的组合:
server1 192.168.0.1
server2 192.168.0.12
file1 /home/user1/file1
upload file1 to server1
ping server1
replicate server1
shutdown server1 命令模式非常适合这一点,因为每个“上传”、"ping“、”复制“和”关机“都可以表示为命令。
不过,我仍有几个问题:
1.解析输入是谁的责任?
输入文件具有必要的信息,如文件和服务器所在的位置。谁来做解析?客户?接收器?扑克牌?
2.解析的信息应该存储在哪里?
前3行的解析信息将被放入一个HashMap中。据DZone的博客文章称,
接收方知道该如何执行请求。
那么,我猜接收器是一个HashMap将存储?
3.命令能返回结果吗?
像"ping“或”关机“这样的命令应该表明在执行命令之后发生了什么。这些命令能返回值吗?
发布于 2015-10-27 18:11:25
每一行有两个部分:命令名和参数。参数是特定于命令的,所以您应该有CommandsProvider,它应该:
CommandsRegistry知道如何根据其名称查找命令)命令PingCommand知道它的第一个参数是服务器。理论上,您可以将每个命令与接受单词数组并配置命令的ArgumentsParser配对,但不确定它是否必要。
信息存储在命令中,接收者只需执行它。
是的,您可以随心所欲地实现execute()方法。
https://stackoverflow.com/questions/33375182
复制相似问题