
598
14
章
Bridge
パターン
Bridge
パターン
実装だけでなく抽象も変化させるために、Bridgeパターンを使
いましょう。
シナリオ
人間工学に基づいた使いやすい新しいテレビリ
モコン用のコードを書いているとします。リモコ
ンは同じ抽象に基づいていますが、その実装は数
多くある(テレビのモデルごとに違う)ため、優
れた
OO
テクニックを使うべきだということはす
でに承知しています。
ジレンマ
リモコンの最初のユーザインタフェースは正しいものではな
いことはわかっています。実際、リモコンのユーザビリティ
データを収集しながら、何度も製品を改良していくことになる
でしょう。
したがって、リモコンが変更されるとテレビもまた変更され
るというジレンマがあります。顧客が所有する多くのテレビに
合わせて実装を変えられるように、すでにユーザインタフェー
スを抽象化済みです。しかし、ユーザのフィードバックに基づ
いてリモコンを改良するので時間の経過とともにその抽象も変
わるため、抽象を変更する必要もでてきます。
では、実装と抽象の両方を変えられるような
OO
設計をどの
ように行うのでしょうか。
すべてのリモコンは同じ
抽象を持ちます。
RemoteControl
on()
off()
setChannel()
//
他のメソッド
テレビごとに
1
つず
つ、数多くの実装が
あります。
SonyControl
on()
off()
setChannel()
//
他のメソッド
RCAControl
on()
off()
setChannel()
//
他のメソッド