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