見出し画像

🛠枝葉のようなcomposite(コンポジット)パターンとnode(ノード)の違い 

Composite パターンの例は、ほとんどすべてのオブジェクト指向システムで見つけることができます。

Composite (意味:複合)、というのが分かりづらいが、合成と再起を表現したいようだ。まさに永遠のシンボル。コンポジットと名のついた植物があるそうだ。語源は花びらの集積


小さな花群から数百、時には数千の花が集まって一つの花のような構造を形成しています。

例えば、グループ化された図形を画面に表示するシステムを定義する場合、図形のグループをリサイズすることで、単一の図形をリサイズするのと同じ効果(ある意味で)が得られると定義しておくと便利です。

木構造がなんで複合(composite)ということが良く分からなかったのだが、もしかしたらこちらの花の比喩ならわかる気がする。GoFで説明する構造も、木構造というよりはグラフィカルな表現で、線や四角、テキストをまとめる意味でのpictureという概念をcompositeと言っているみたいで、花の集積をcomposite flowerというのに似ている。

ここではcomponentが花、leafが花びら,compositeがまとめる何かということになる。

Gofの例ではComponentがGraphic, Compositeがpictureとなっている。

配列とかスタックキューときて、次に木構造をおぼえる体裁になっている。アルゴリズムを学ぶ上でどうも基本になり、前に説明したプログラミングテクニックの本(https://amzn.to/37eXxKN)でも、しつこいぐらいにデータ構造の解説になる。GoFがTreeとかFolderとかBranchでなくcompositeとしたのはある程度の含みがある。

接点と合成Nodeという言葉

Compositeの例でしょっちゅう出てくるNodeというのは接点という意味がある。





お願い致します