
374
22
章 デザインパターンのエビデンス
ンタフェース要素とプラットフォーム固有の基本操作とをつなぐ「架け橋」なのです。
Composite
パターンは、部品の階層構造を作るのに用います。コンピュータのファイルシステムは部
品の階層構造の例です。ルートディレクトリにはファイルとディレクトリが含まれ、それらのディレク
トリにもファイルや別のディレクトリが含まれ、というふうに続きます。部品の階層構造はどれだけ深
くなることもできます。
Composite
パターンはこのような階層構造をうまく扱う標準的な方法を用意す
るもので、容器ノード(ファイルシステムの例ではディレクトリ)と葉ノード(ファイル)を区別します。
葉ノードは原子であり、他のノードを格納することはできません。容器と葉のインタフェースには、両
方に共通の操作を提供します。ファイルシステムの例では、ファイルやディレクトリの名前変更、他の
ディレクトリへの移動、ファイルやディレクトリを開く、などが基
本操作です。
Decorator
パターンは、既存クラスに、そのクラスを変更することなく情報や機能を追加するのに役
立ちます。
Decorator
は、オリジナルに代わって使われる代理のオブジェクトです。
decorator
オブジェ
クトはメッセージを受け取るごとに自身が持つ独自の機能を実行した後、オリジナルに委譲(
delegate
、
たらい回し)します。たとえば、テスト用の
decorator
は、テストケースが実行される前と後とに実行
されるコードを追加して、テスト番号とその結果とを記録します。 ...