Bridge(ちょうぜつ本)
単一継承を前提にすると、継承ではバリエーション表現力として不完全なときに用いる
例:賞
材質
形状
単一継承(is-a)だと重複が出てくる
has-aでとらえる
材質のインターフェース
形状のインターフェース
賞は、材質も形状も返せるインターフェースを実装
(インターフェースを使うのは、はみ出たとき対策?)
材質に関する特徴と形状に関する特徴のインスタンスの構成によって作るスタイル (Kindle版 p.337)
複数系統のバリエーションの組合せで多態性を表現できる!
インスタンスの組み合わせ(あるいは複数インターフェースの兼任)での表現 (Kindle版 p.340)
異なる軸上にある概念は、それぞれ別々にモデリングし、主となる概念に has-a 関係として、従属する特徴を橋渡しした組み合わせで表現しようとモデリングを考え直したときに出てくるのが、Bridge パターン
「継承よりコンポジションを好め」の典型的な例
実際のプログラミングでは、たとえば、仕入れ先リストや顧客リストといった、取引先リストの派生モデルに関係するもの (What) と、HTML で表示したいか CSV でダウンロードしたいかといった、出力機能の派生モデルに関係するもの (How) を分ける。で、What が How を持つ形で組み合わさったインスタンスになる感じ
流行りの言葉でいえば、ドメインモデルとインフラストラクチャの組み合わせがユースケースだよって感じかな。