【ブリッジパターン】
Bridgeパターン とは?
最終更新:
💡 リモコンの操作と機器の実装を分け、共通の接続口でつなぐ設計
利用者側の高水準の操作と、その処理を担う実装を分け、共通のインターフェースへの参照でつなぐ構造的デザインパターン。両側を別々に拡張しやすくし、組み合わせごとのクラスの増加を抑える。
📌 このページのポイント
リモコンと機器の組み合わせごとにクラスが必要なの?
リモコンA・Bとテレビ・ラジオなら、組み合わせごとに4クラス作る設計も考えられるね。種類が増えるほど組み合わせも増える。Bridgeでは、リモコン側の操作と機器側の処理を分けて、その増加を抑えるんだ。
どうやって分けるの?
新しいリモコンや機器を自由に追加できる?
共通インターフェースの約束を保てれば、両側を別々に追加しやすいよ。ただし、機器にない機能まで自動的に使えるわけではない。共通の操作として何を提供するか、対応できない機能をどう扱うかは設計する必要があるんだ。
Adapterパターンと似てる気がするけど、違うの?
参照を通じて処理を委ねる構造は似ることがあるよ。Adapterは合わない接続口を合わせること、Bridgeは別々に拡張したい2つの側を分けることが主な意図。作った時期だけで機械的に分類するものではないんだ。
どんなときでも分ければよい?
描画の操作とOSごとの処理など、別々に変わる側があると役立つよ。一方、ほとんど一緒に変わる単純なクラスを分けすぎると、参照や階層が増えて複雑になる。独立して拡張したい理由があるかを考えよう。
まとめ:ざっくりこれだけ覚えればOK!
「Bridgeパターン」って出てきたら「抽象と実装を分けて独立に進化させる設計」と思えばだいたいOK!
📖 おまけ:英語の意味
「Bridge Pattern」 = 橋渡しパターン
💬 抽象と実装の間に「橋」を架けて分離する様子からこの名前がついたんだよ