Design patterns 不同模式的命令处理器设计模式

Design patterns 不同模式的命令处理器设计模式,design-patterns,command,mode,Design Patterns,Command,Mode,我的朋友和我讨论了一个简单的命令处理器的设计——接受字符串命令,拆分它,查找关键字add、subtract等,执行这些命令并返回结果。到目前为止,一切顺利 但是现在,当命令处理器处于不同的模式(复杂模式、真实模式等)时,如果希望相同的命令以不同的方式工作,该怎么办 这里可以使用哪种设计模式,记住将来添加更多的关键字和模式应该很容易?设计模式的好处在于它们的名称描述了它们所解决的问题。所以,你应该检查一下 命令模式是一种行为设计模式,其中对象是 用于表示和封装调用 方法以后再使用。此信息包括方法名

我的朋友和我讨论了一个简单的命令处理器的设计——接受字符串命令,拆分它,查找关键字add、subtract等,执行这些命令并返回结果。到目前为止,一切顺利

但是现在,当命令处理器处于不同的模式(复杂模式、真实模式等)时,如果希望相同的命令以不同的方式工作,该怎么办


这里可以使用哪种设计模式,记住将来添加更多的关键字和模式应该很容易?

设计模式的好处在于它们的名称描述了它们所解决的问题。所以,你应该检查一下

命令模式是一种行为设计模式,其中对象是 用于表示和封装调用 方法以后再使用。此信息包括方法名称、 对象,该对象拥有方法和方法参数的值

命令模式包括命令、接收者、调用者和客户端

模式对象对您来说将特别有趣,因为您希望添加执行模式


Invoker对象保存有关命令执行的信息,并负责为命令执行不同的模式。

我在谷歌搜索时遇到过命令模式,但无法确定如何包括模式。RU建议每个命令应该实现每个模式,然后调用器对象使用if-else梯形图到处理器所处的chk模式,并执行command-obect中的一个方法?但我想避免d if else梯形图,因为添加更多模式变得不方便。你能详细说明一下obect u建议的模式吗?因为wiki只在每个模式创建类之前提到过一次:模式1、模式2等。对于每个模式类,在命令上实现执行功能。类命令{void executeMode1 m1;void executeMode2 m2;..}使用命令和模式对象invoke.processcommand,mode1调用invoke对象。并在进程函数内部调用适当的命令模式:executemode1。您将避免if-s和重载情况。