■目的
ディレクトリとサブディレクトリ、ファイルの関係のように、容器と中身を同一視し、再帰的な構造を作るパターン。
ツリー構造の実現に最適。
■メリット
- 集団を構成するクラスと要素を構成するクラスを一様に扱え、クラスの数を減らすことができる。
- ツリー構造全体を同じ方法で扱うことができる。
- 新しいグルーピング単位を容易に追加できる。
- 新しいコンポーネントを容易に追加できる。
■考慮事項
- 循環参照に注意する必要がある。
- 過度に適用しすぎると、論理的に正しくない構造を作り出してしまう恐れがある。たとえば、ツリー構造に親子関係があるのに、子の下に親を追加できたりしてしまうなど。
■関連しているパターン
- Commandパターン
「マクロコマンド」を作るときに、Compositeパターンが使われる。 - Visitorパターン
- Decoratorパターン

コメントを残す