【ブリッジパターン】
Bridgeパターン とは?
💡 リモコンと家電を別々に設計して、どの組み合わせでも動かせる仕組み
「リモコンA・B」と「テレビ・ラジオ」の全組み合わせをクラスで作ると大変そうだね!
それが「組み合わせ爆発」の問題だよ。2種のリモコン×2種の機器で4クラス、増えると一気に膨らんでしまうんだ。Bridgeパターンはその問題を解決してくれるよ。
どうやって解決するの?
「抽象(リモコン)」と「実装(機器)」を別のクラス階層に分けて、リモコンが機器への参照を持つ形にするんだ。リモコンと機器を橋でつなぐイメージだよ。
そうすれば新しいリモコンを追加しても、機器クラスを変えなくていいんだね!
正解!逆に新しい機器を追加するときもリモコンは変えなくていい。抽象と実装がそれぞれ独立して拡張できるのが最大のメリットだよ。
Adapterパターンと似てる気がするけど、違うの?
Adapterは既存のインターフェースを合わせるための後付けの修正、Bridgeは最初から抽象と実装を分けて設計するアプローチだよ。設計の意図が違うんだね。
最初から「分けて設計する」のがBridgeの考え方なんだね!
まとめ:ざっくりこれだけ覚えればOK!
「Bridgeパターン」って出てきたら「抽象と実装を分けて独立に進化させる設計」と思えばだいたいOK!
📖 おまけ:英語の意味
「Bridge Pattern」 = 橋渡しパターン
💬 抽象と実装の間に「橋」を架けて分離する様子からこの名前がついたんだよ