ここロシア語のウィキペディアのリンクには、コマンド デザイン パターンの C++ 実装の例があります。UMLクラス図と比較した実装から理解できるように、次のことがわかります。
- クラス Document はダイアグラムの Invoker です
- class Command は図のコマンドです
- クラス InsertCommand は、ダイアグラムの ConcreteCommand です
- クラス Receiver は図の Receiver です
また、図からわかるように、Invoker は Command を集約します。しかし、私たちの場合、クラス Document は Command を集約しません。間違いですか?それともコマンドパターンのバリエーションですか?具体的なパターンを設計するために、UML ダイアグラムは一般的にどの程度厳密に従う必要がありますか?