
360
9
章
Composite
パターンの定義
Composite
パターンの定義
新しいパターンを導入してこの問題を解決していきます。イ
テレータでの解決をあきらめたわけではなく、イテレータはこ
の解決策の一部で使っています。しかし、メニュー管理の問題
は、イテレータでは解決できない新たな局面を迎えています。
そこで、
Composite
パターンを使って解決することにします。
Composite
パターンについて遠まわりしたくないので、さっ
そく正式な定義を発表しましょう。
Compositeパターンでは、オブジェクトをツ
リー構造に構成して部分−全体階層を表現で
きる。
Composite
パターンを使うと、クライア
ントは個々のオブジェクトとオブジェクトの
コンポジションを統一的に扱うことができる。
Composite
パターンについて、私たちのメニューの観点から
考えてみましょう。
Composite
パターンを使うと、ネストされ
たメニュー群とメニュー項目を同じ構造内で扱えるツリー構造
を作成できます。メニューとメニュー項目を同じ構造に入れる
と、部分−全体階層、すなわち、部分(メニューとメニュー項
目)から構成されているものの、全体として
1
つの巨大な上位
メニューとして扱えるオブジェクトのツリーを作成します。
この上位メニューができたら、このパターンを使って「個々
のオブジェクトとコンポジションを同じように」扱えます。こ
れは何を意味するのでしょうか?
メニュー、サブメニュー、場
合によってはサブサブメニュー、そしてメニュー項目を含むツ ...