设计模式-适配器模式

chenjinlong 2020-04-27

先举例子,安卓的耳机怎么查Ios的手机? 往上有转接头,也叫适配器。当一个类想和另一个无关的类一起工作就需要适配器

安卓的耳机

public interface Target {
    void work();
}

ios的插孔

public class Adapte {
    public void adapte(){
        System.out.println("听歌。");
    }
}

买个适配器

public class ClassAdaptee extends Adapte implements Target {

    @Override
    public void work() {
        adapte();
    }
}

测试类

public class Client {
    public static void main(String[] args) {
        new ClassAdaptee().work();
    }
}

现在如果想使用安卓的耳机和ios的插孔一起工作,只需要找适配器类,这叫做类适配器,如果将上面代码改一下,可以改为对象适配器

适配器改为

public class ObjectAdaptee implements Target {
    Adapte adapte;

    @Override
    public void work() {
        adapte.adapte();
    }

    public ObjectAdaptee(Adapte adapte) {
        this.adapte = adapte;
    }
}

测试类改为

public class Client2 {
    public static void main(String[] args) {
        ObjectAdaptee objectAdaptee = new ObjectAdaptee(new Adapte());
        objectAdaptee.work();
    }
}

应用场景:当使用一些第三方的接口时,发现接口定义和自己要求的接口定义不同,这时候可以使用适配器。

相关推荐