構造に関するデザインパターン
構造に関するデザインパターンは、 構造の柔軟性と効率を維持しつつ、 オブジェクトとクラスを大きな構造に束ねる方法を説明します。
Adapter
非互換なインターフェースのオブジェクト同士の協働を可能とします。
Bridge
巨大なクラスや密接に関連したクラスの集まりを、 抽象部分と実装部分の二つの階層に分離し、 それぞれが独立して開発できるようにします。
Composite
オブジェクトからツリー構造を組み立て、 その木構造がまるで独立したオブジェクトであるかのように扱えるようにします。
Decorator
ある振る舞いを含む特別なラッパー・オブジェクトの中にオブジェクトを配置することで、 それらのオブジェクトに新しい振る舞いを付け加えます。
Facade
ライブラリー、 フレームワーク、 その他のクラスの複雑な組み合わせに対し、 簡素化されたインターフェースを提供します。
Flyweight
複数のオブジェクト間で共通する部分を各自で持つ代わりに共有することによって、 利用可能な RAM により多くのオブジェクトを収められるようにします。
Proxy
他のオブジェクトの代理、 代用を提供します。 プロキシーは、 元のオブジェクトへのアクセスを制御し、 元のオブジェクトへリクエストが行く前か後に別の何かを行うようにすることができます。