0

複合パターンについて質問があります。

基本クラス「Component」は、「Composite」クラスのポイントリーフオブジェクトへのポインタのように機能しますか?

編集: 次の言葉で私の質問をさせてください。 「CompositeクラスとComponentクラスの関係は何ですか?」

これがパターンのumlクラス図です。

代替テキスト

4

3 に答える 3

3

コンポジットとコンポーネントの関係:

1)LeafとCompositeは通常、1つのインターフェースまたは1つの抽象クラスを実装します。あなたの図では、それらはコンポーネントを拡張します。したがって、ダイアグラム上の関係は継承です。

2)コンポジットにはコンポーネントのインスタンスが含まれています。コンポーネントは、場合によってはコンポジットになることがあるため、コンポーネントのインスタンスを含めることもできます。これは再帰的合成と呼ばれます。一般に、この関係は集約と呼ばれます。

于 2010-03-12T16:59:35.257 に答える
1

成分

  • 複合コンポーネントを含むすべてのコンポーネントの抽象化です
  • コンポジション内のオブジェクトのインターフェースを宣言します
  • (オプション)再帰構造でコンポーネントの親にアクセスするためのインターフェースを定義し、それが適切な場合はそれを実装します

  • コンポジション内の葉オブジェクトを表します
  • すべてのComponentメソッドを実装します

複合

  • 複合コンポーネント(子を持つコンポーネント)を表します
  • 子を操作するメソッドを実装します
  • 通常、子に委任することにより、すべてのコンポーネントメソッドを実装します

http://en.wikipedia.org/wiki/Composite_pattern

于 2010-03-12T16:42:23.903 に答える
0

すべてのコンテナクラスとcontaineeクラスは、interface( Component )との「isa」関係を宣言します。

すべてのコンテナクラスは、インターフェイスに対して1対多の「持つ」関係を宣言します。

詳細はこちら

于 2011-05-15T04:19:12.657 に答える