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