Bridge パターン

Bridge パターン（ブリッジ・パターン）とは、GoF（Gang of Four; 4人のギャングたち）によって定義されたデザインパターンの1つである。
「橋渡し」のクラスを用意することによって、クラスを複数の方向に拡張させることを目的とする。
クラス図.
Bridge パターンのクラス図を以下に挙げる。
利用例.
Bridge パターンの適用が望ましいクラス構造は、例えば以下のようなものである。
この例では、まず Dishware（食器）クラスから Plate（皿）と Bowl（ボウル）クラスが派生している。
さらに、Plate からは WoodenPlate（木製の皿）と GlassPlate（ガラス製の皿）が、
Bowl からは WoodenBowl（木製のボウル）と GlassBowl（ガラス製のボウル）が派生している。
このクラス階層は、以下に挙げる問題をはらんでいる。
この問題が起こる理由は、クラス階層の中に複数の継承関係が混在していることである。
上の例において、Dishware と Plate および Bowl の関係は、食器の種類による継承関係とみなすことができ、
一方で Plate と WoodenPlate および GlassPlate の関係は、食器の材質による継承関係とみなすことができる。
このように複数の継承関係が存在することにより、一つの継承関係が他の継承関係に悪影響を及ぼすことになる。
このクラス構造は、Bridge パターンを適用することによって以下のように改善することができる。
このクラス図では Dishware から派生する継承関係は食器の種類のみであり、材質に関する情報は Material（素材）クラスに委譲している。
この構造により、種類と材質はそれぞれ独立して拡張することができ、クラスの数も減らすことが出来る。