Adapterパターン

作成済みのAdapteeクラスを、Clientが期待しているインタフェースTargetから利用できるように、変換するクラスがAdapterクラス。
Adapteeを継承して、is-a関係として実装するやり方と、Adapteeに委譲する、has-a関係として実装するやり方がある。
委譲パターンの場合、Targetを抽象クラスとすると説明にはあるのだが、インタフェースでも問題ないような気がする。
抽象クラスじゃないとダメな理由あるんかな?
どんな場合に使うかというと、サードパーティーが提供するクラスを自分達が使いやすいAPIに変換するときとかに使う。
Wrapperとも呼ぶ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です