Ch.9 KICK THE BRIDGE
【目標】
Bridgeパターンを使って、ラッパーは歌ったってイーゼてなことを証明しよう。
【クラス図】
【実装】
<HumanBase抽象クラス:Abstraction>(機能側の最上位のクラス)
≪Rapperクラス:RefinedAbstraction≫(機能を追加した機能側の下位のクラス)
<HumanImplインターフェース:Implementor>(実装側の最上位クラス)
≪ConcreteHumanクラス:ConcreteImplementor≫(実際のふるまいを定義した実装側の下位クラス)
[Mainクラス]
【出力結果】
【メモ】
・各クラスの関係性がイメージしづらい
・ひとつの「もの」を2つのクラスに分ける感覚がつかみづらい
・TECHSCOREのサイトの説明のが分かりやすいが、実装側のメソッドにアクセスできるようにするというイメージだとAdapterパターンとも混同しそう
・この例が不適切なのはHumanImplインターフェースを実装するのがConcreteHumanクラス以外に考えにくいところだ。これならばRapperクラスをConcreteHumanクラスから継承させるだけで目標が達成できる。TECHSCOREの例のように、SortインターフェースをQuickSortクラスとBubbleSortクラスに実装させるというような例を考えるべきだ。