2010年4月25日日曜日

Adapterパターン

Adapterパターンとは、提供されてるものを必要な形に適合する(Adapter)するように変換するパターンのことです。

例えば、提供する側をAdapteeクラス、ターゲットをTargetクラス、ターゲットに適合するように変換するクラスをAdapterクラスとすると、Adapterクラスは例としては
public class Adapter extends Adaptee implements Target {
    ・・・
    @override
    public String getValue() {
        // Adapteeクラスで用意されているメソッドを呼び、
        // "value: "というprefixをつけて返す。
        return "value: " + getSampleValue();
    }
    ・・・
}

のようになります。上の例はTargetクラスをimplement、Adapteeクラスを継承した形ですが、

public class Adapter extends Target {
    private Adaptee adaptee;
    ・・・
    public String getValue() {
        // Adapteeクラスで用意されているメソッドを呼び、
        // "value: "というprefixをつけて返す。
        return "value: " + adaptee.getSampleValue();
    }
  ・・・
}

のように、Targetクラスを継承して,Adapteeクラスに処理を移譲する形でも実装できます。

関連パターン
Bridgeパターン異なるクラス同士を結びつけるためのパターン。これも橋渡し役と言えそう
Decoratorパターン中身のインターフェースを変えずに作るのがDecoratorパターンで、異なるインターフェースをつなぐのがAdapterパターン

0 件のコメント:

コメントを投稿