Composite を Go で
Composite は、 構造に関するデザインパターンの一つで、 オブジェクトを木のような構造に構成し、 あたかも単一のオブジェクトであるかのように扱えるようにします。
Composite は、 ツリー構造の構築を必要とする問題の大部分の解決策として、 かなりの人気を得るようになりました。 Composite の大きな特徴は、 ツリー構造全体でメソッドを再帰的に実行し、 結果をまとめあげることです。
概念的な例
オペレーティング・システムのファイルシ・ステムを例に取って、 Composite パターンを理解してみましょう。 ファイル・ システムには、 ファイルとフォルダーという 2 種類のオブジェクトが存在します。 ファイルとフォルダーを同じように扱う必要がある場合があります。 ここで、 Composite パターンが役に立ちます。
ファイル・システムで特定のキーワードを使った検索を実行する必要があるとします。 この検索の作業は、 ファイルとフォルダーの両方に適用されます。 ファイルの場合は、 ファイルの内容を調べるだけです。 フォルダーの場合は、 そのフォルダーのすべてのファイルに対してキーワード検索を行います。