命令模式用例?

时间:2016-08-31 13:26:18

标签: design-patterns command-pattern

使用命令模式的一些示例用例是什么?我一直在阅读它,我对如何实现它有一个好主意。但是在知道何时使用它时,这是一个很大的模糊。

它解决的一个问题是解耦类的API。但这究竟意味着什么呢?直接调用对象方法的缺点是什么?

它解决了哪些其他问题,以及它们如何从中受益?

2 个答案:

答案 0 :(得分:2)

当您需要将操作视为对象时,命令模式非常有用,因此您可以:

  • 添加新的操作类型,无需切换案例构造(读取:插件)
  • 存储稍后要执行的操作(例如,活动对象)
  • 与动作补充信息关联(例如,如何撤消操作)

实际代码中命令模式的一个简单示例如下。

实现协议时,您可以使用命令模式将字节流的解析与消息关联的操作分离(请记住,在OO中,您不管理消息,但消息管理自己:-)

当通道从线路接收到一些字节时,它构造正确的命令对象(例如,使用原型或抽象工厂模式)并将其放入队列中以便稍后执行(可能在另一个线程中)。

答案 1 :(得分:0)

命令模式可以在可扩展性方面为您提供帮助,因为您可以在不更改现有代码的情况下添加新用例。

它还允许您链接命令并以顺序或并行模式执行(依赖于语言功能)并创建

您可以在此页面中看到更多示例:http://gameprogrammingpatterns.com/command.html