Ch.2 KICK THE ADAPTER
【目標】
Adapterパターンを使用して、小西真奈美(女優)にラップさせよう。
①継承を使った場合(クラスによるAdapterパターン)
【クラス図】
【実装】
≪Rapperクラス:Adaptee≫
<IActressインターフェース:Target>
≪ActressToRapperAdapterクラス:Adapter≫
[Mainクラス:Client]
【出力結果】
②委譲を使った場合(インスタンスによるAdapterパターン)
【クラス図】
≪Rapperクラス:Adaptee≫
<Actress抽象クラス:Target>
≪ActressToRapperAdapterクラス:Adapter≫
[Mainクラス:Client]
【出力結果】
【メモ】
・①も②もmanamiKonishi.Work()の主体(manamiKonishi)の正体はアダプターであることを意識してないとこんがらがる。現実世界のアダプターと異なり、仲介者が主体となることを意識すべきか。
・Adapterパターンを実装するためだけに①のように新しいインターフェースを作るのは多少違和感がある