2013-05-28 デザインパターンのエッセンス~構造パターン~ Java デザインパターン デザインパターンの解説は数多あるけれど、そもそも例が複雑で分かりにくい!というわけで、UML1枚のみでシンプルに説明するシリーズ第2弾。 今回は、構造に関する7つのパターン。生成に関するパターンはこちら。 6. Adapter すでに提供されているものと必要なもののずれを埋めるデザインパターン。Wrapperパターンとも呼ばれる。 元々関連性のない2つのクラスを接続するクラスを作る。 継承を用いる方法 委譲を用いる方法 7. Bridge 機能のクラス階層と実装のクラス階層を橋渡しをするデザインパターン。 クラスなどの実装と、呼出し側の間の橋渡しをするクラスを用意し、実装を隠蔽する。 8. Composite 容器と中身を同一視し、再帰的な構造を作るパターン。 再帰的な構造を表現する。 9. Decorator オブジェクトにデコレーションをほどこしていくパターン。Filterとも呼ばれる。 あるインスタンスに対し、動的に付加機能を追加する。 10. Facade 複雑なクラス構成をまとめてシンプルなAPIを提供するパターン。 複数のサブシステムの窓口となる共通のインタフェースを提供する。 11. Flyweight インスタンスをできるだけ共有させて、無駄にnewしないパターン。 多数のインスタンスを共有し、インスタンスの構築のための負荷を減らす。 12. Proxy 代理人を立てるパターン。 共通のインタフェースをもつインスタンスを内包し、利用者からのアクセスを代理する。 « デザインパターンのエッセンス~振る舞い… デザインパターンのエッセンス~生成パタ… »