アダプターAdapterパターン今年から、花粉症になったみたいです・・・。鼻がムズムズして頭も痛くなるし大変ですね、なめてました。今回は、Adapterパターンについて書きます!Adapterパターンクラスのインターフェースを、クライントの期待する別のインターフェースに変換する。アダプタは互換性がないインターフェースのために、そのままでは連携ができないクラス(Adaptee)を(Clientと)連携できるようにさせます。ラップするインターフェースを変換します。AdapterTargetインターフェースを実装する。<<interface>>ClientはこのTargetインターフェースを使っている感覚。実際には、Adapterを通して、Adapteeを使っているが、Adapteeを使っている認識は特にない。Adaptee全てのリクエストはAdapeeに委譲される。Client1Targetインターフェースを使って、Adapterのメソッドを呼び出し、Adapterにリクエストをする。2AdapterがAdapteeインターフェースを使ってAdapteeのメソッドに変換して呼び出す3Clientはリクエスト結果を受け取るが、Targetインターフェースに沿っただけなので変換をしてくれたAdapterの存在は知らない。クラスアダプタの2つがある。オブジェクトアダプタコンポジションを使うので、Adapteeとそのサブ(具象)クラスにも適用可能、多様性あり。クラスアダプタ(多重)継承を使うので、1つの特定のアダプティに特化したアダプタが実装可能。オーバライドができる。全ての具象クラスのgobbleメソッドの修正が必要となる。Adapterを使うと...↓1つのクラス内にすべての変更をカプセル化したクラスを提供できる。Client/Adaptee/TargetInterfaceのコード変更は不要。実際に作ってみた!しかし、テキトーすぎて見せたくない。時間あったらちゃんとさせます。Dock,Turkey{}interfaceのextendsって初めて使いました。