0

在俄语维基百科链接中,有一个命令设计模式的 C++ 实现示例。正如我从与 UML 类图比较的实现中了解到的那样,我看到:

  1. 类 Document 是图中的 Invoker
  2. class Command 是图中的Command
  3. 类 InsertCommand 是图中的 ConcreteCommand
  4. 类 Receiver 是图中的 Receiver

另外,从图中我们可以看出,Invoker 聚合了 Command。但在我们的例子中,文档类不聚合命令。这是一个错误吗?或者它是命令模式的变体?在设计具体模式时一般应遵循多严格的 UML 图?

4

1 回答 1

1

C++ 示例的命名不太好,我理解它们如下:

  • Document是 a Receiver,应用命令的对象
  • ReceiverInvoker根据提供的UML图起作用。
  • main方法是一个Client

您可以看一下 Java 示例,它更干净。

于 2013-03-20T09:16:54.397 回答