Composite(ちょうぜつ本)
#Compositeパターン
データ構造に言及する唯一のパターン
自己再帰的なデータ構造
木構造
ファイルシステム
HTMLのDOM
プログラミング言語の構文木
無限に中へ展開できる
IMO:自己相似(フラクタル)と概念的に違いはあるのかな?
実装例:(リポジトリに用意)
DIコンテナの要素は親ノードを複数持つことがあり、Compositeパターンの要素は親が必ずひとつ (Kindle版 p.393)
4章のUMLをここで回収
DIコンテナは、集約
親と独立して子が存在できる。インスタンスの共有もある
Compositeは、コンポジション
トップダウンツリー(親がなければ子もない)
多対多にならないメリット
マンガでわかる Composite
部分と全体が同じ形をした再帰的ツリー構造はかっこいいし、実際に扱いもシンプルでいいよね
IMO:https://nikkie-ftnext.hatenablog.com/entry/observe-huggingface-tokenizers-normalizers のSequenceもCompositeの要素があるのでは
部品の集合を持った部品を作れるようにしている
「複数と単数の同一視」(結城先生本)