DesignPattern_Java:Adapter Pattern


アダプタモードAdapter Patternトランスモード
Convert the interface of a class into another interface clients expect.Adapter lets classes work together that couldn’t otherwise because of incompatible interfaces.
1つのクラスのインタフェースをクライアントが望む別のインタフェースに変換し、インタフェースが一致しないために一緒に動作できなかった2つのクラスを一緒に動作させる.アダプタモードは、1つのインタフェースまたはクラスが他のインタフェースまたはクラスに変換され、アダプタはパッケージに相当します.
ターゲットキャラクタ(Target):変換するターゲットインタフェースを定義します.
package com.DesignPattern.Structural.Adapter;

public interface Target {
    public void request();
}

≪ソース・ロール(Adaptee)|Source Role|ldap≫:ターゲット・ロールに変換するソース・ロール.
package com.DesignPattern.Structural.Adapter;

//   
public class Adaptee {
    //       
    public void specificRequest() {
        System.out.println("      ");
    }
}

アダプタ・ロール(Adapter):このロールはアダプタ・モードの核心であり、ソース・ロールをターゲット・ロールに変換するためにクラス関係を継承またはクラス化する役割を果たします.
package com.DesignPattern.Structural.Adapter;

public class Adapter extends Adaptee implements Target {
    @Override
    public void request() {
        super.specificRequest();
    }
}
package com.DesignPattern.Structural.Adapter;

public class Client {

    public static void main(String[] args){
        //       
        Target target=new Adapter();
        target.request();
    }
}

アダプタモードの例
Dumplings.java
package com.DesignPattern.Structural.Adapter;

public class Dumplings {

    public void makeDumplings(){
        System.out.println("  ");
        System.out.println("  ");
        System.out.println("  ");
    }
}

Hundun.java
package com.DesignPattern.Structural.Adapter;

public interface Hundun {
    public void makeHundun();
}

FoodAdapter.java
package com.DesignPattern.Structural.Adapter;

public class FoodAdapter extends Dumplings implements Hundun {
    @Override
    public void makeHundun() {
        super.makeDumplings();
        System.out.println("                ");
    }
}

ClientDemo.java
package com.DesignPattern.Structural.Adapter;

public class ClientDemo {

    public static void main(String[] args){
        Hundun h=new FoodAdapter();
        h.makeHundun();
    }
}