例えば、提供する側を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 件のコメント:
コメントを投稿