0

ここロシア語のウィキペディアのリンクには、コマンド デザイン パターンの C++ 実装の例があります。UMLクラス図と比較した実装から理解できるように、次のことがわかります。

  1. クラス Document はダイアグラムの Invoker です
  2. class Command は図のコマンドです
  3. クラス InsertCommand は、ダイアグラムの ConcreteCommand です
  4. クラス Receiver は図の Receiver です

また、図からわかるように、Invoker は Command を集約します。しかし、私たちの場合、クラス Document は Command を集約しません。間違いですか?それともコマンドパターンのバリエーションですか?具体的なパターンを設計するために、UML ダイアグラムは一般的にどの程度厳密に従う必要がありますか?

4

1 に答える 1

1

C++ の例のネーミングはあまり良くありません。次のように理解しています。

  • DocumentReceiver、コマンドを適用するオブジェクトです
  • Receiverクラスは、提供されたUMLダイアグラムInvokerの観点から機能します。
  • mainメソッドはClient

Java の例を見ることができます。よりクリーンです。

于 2013-03-20T09:16:54.397 に答える