コース: C#:デザインパターン
Compositeの概要を知る
Composite パターンでは、 木構造のような枝分かれする データ構造を表現することができます。 Composite パターンの Composite とは、 複合という意味です。 Composite パターンは 構造に関するパターンに分類されます。 木構造のように枝分かれしながら、 同じデータ構造を繰り返す 再帰的なデータ構造を 表現することができます。 例えば、PC の ディレクトリとファイルのような 構造を表現することができます。 Composite パターンには 2つの役割が登場します。 ひとつはディレクトリのようにその構造に それ自身を複数含めることができる Composite、 もうひとつはファイルのように この中には何も含めることができない 木構造で言うと終端に値する Leaf、 Composite パターンのサンプルを クラス図で表すと このような構成になります。 まず、Composite、Leaf 共に 実装する INode インターフェイス プロパティに Name という フィールドを持ち、 要素を追加する Add というメソッドと WritePath というパスを出力する メソッドを持ちます。 このインターフェイスを 実装した Leaf と Composite があります。 それぞれ Add と WritePath を持っています。 Composite の方は フォルダーのように 自身に複数の要素を含めることができるので nodeList というプライベートな フィールドを持っています。 Leaf と Composite を 継承した File と Folder というクラスがあります。 このような構成で Composite パターンでは 木構造を表現することができます。
エクササイズファイルを使って実践してみましょう。
インストラクターがコースで使用しているファイルはダウンロードできます。見て、聞いて、練習することで、理解度を深めることができます。