Compositeパターン

■目的
ディレクトリとサブディレクトリ、ファイルの関係のように、容器と中身を同一視し、再帰的な構造を作るパターン。
ツリー構造の実現に最適。
■メリット

  • 集団を構成するクラスと要素を構成するクラスを一様に扱え、クラスの数を減らすことができる。
  • ツリー構造全体を同じ方法で扱うことができる。
  • 新しいグルーピング単位を容易に追加できる。
  • 新しいコンポーネントを容易に追加できる。

■考慮事項

  • 循環参照に注意する必要がある。
  • 過度に適用しすぎると、論理的に正しくない構造を作り出してしまう恐れがある。たとえば、ツリー構造に親子関係があるのに、子の下に親を追加できたりしてしまうなど。

■関連しているパターン

  • Commandパターン
    「マクロコマンド」を作るときに、Compositeパターンが使われる。
  • Visitorパターン
  • Decoratorパターン

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です