请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

命令模式的应用场景

图片描述
命令模式 ,Invoker 类和 Receiver 类,就是中间增加了一个 Command 类。 Command 类对于 Receiver 类是一对多吗? 这个在中间增加一个 Command 类的意义何在?

正在回答

1回答

Command 和 Receiver 应该没有一对多或者一对一这种规定,灵活匹配即可。

Command 存在的意义,就是为了保证更好的扩展性。假如我们要定义自己的命令逻辑(最简单的,如打印一个日志,如你的截图),这段逻辑应该写在哪里呢?写在 Invoker 和 Receiver 里,貌似都不是很合适,对吧?

当然了,如果命令的逻辑非常简单,就一行代码,那 Command 也就没有存在的必要的了,可以删掉。但大部分情况下,还是建议 Command 留着,方便以后扩展。

0 回复 有任何疑惑可以回复我~
  • 提问者 圣诞树 #1
    定义自己的命令逻辑应该可以放在Receiver exec()函数里面吧?这个模式感觉就是增加了一个类,增加了一次调用的次数,方便扩展这个点我也还不太理解
    回复 有任何疑惑可以回复我~ 2020-02-03 13:51:18
  • 提问者 圣诞树 #2
    或者说这个模式是用于解决多层级调用的问题,这样倒是好理解一点。就是不知道我理解的对不对
    回复 有任何疑惑可以回复我~ 2020-02-03 13:57:44
  • 双越 回复 提问者 圣诞树 #3
    定义自己的命令逻辑应该可以放在Receiver exec()函数里面吧? —— 这个不一定完全可以,到时候看需求吧,反正抽离 Command 也算是提供一个设计参考。
    回复 有任何疑惑可以回复我~ 2020-02-03 20:06:13
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信