2010年4月25日日曜日

Adapterパターン

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

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

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

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

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

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

0 件のコメント:

コメントを投稿