在俄语维基百科链接中,有一个命令设计模式的 C++ 实现示例。正如我从与 UML 类图比较的实现中了解到的那样,我看到:
- 类 Document 是图中的 Invoker
- class Command 是图中的Command
- 类 InsertCommand 是图中的 ConcreteCommand
- 类 Receiver 是图中的 Receiver
另外,从图中我们可以看出,Invoker 聚合了 Command。但在我们的例子中,文档类不聚合命令。这是一个错误吗?或者它是命令模式的变体?在设计具体模式时一般应遵循多严格的 UML 图?