【コンポジットパターン】
Compositeパターン とは?
💡 葉っぱも枝も同じ「木の一部」として扱う設計術
📌 このページのポイント
Compositeパターンって、何を解決するためのパターンなの?
ファイルシステムで説明してもらえる?
3つの要素って何なの?
UIでも使われるって聞いたよ?
そうだよ。ボタンやテキストが「Leaf」、パネルやウィンドウが「Composite」として扱えるんだ。「draw()」を呼べば自動的に子要素も再帰的に描画されるように設計できるんだよ。
再帰的に処理できるのが便利なんだね!注意点はある?
全要素が同じインターフェースを持つので、LeafにはCompositeの操作(子を追加するなど)が不要でも実装しなければならないケースがあるんだ。設計のトレードオフとして覚えておくといいよ。
📖 おまけ:英語の意味
「Composite Pattern」 = 合成パターン
💬 Composite(合成・複合)はラテン語のcompositus(組み合わせたもの)が語源で、GoFの「Design Patterns」(1994年)で定義された構造パターンの一つだよ。