第二十二章 适配器模式(Adapter)

2019-05-23  本文已影响0人  JarvisTH

把一个类的接口换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

优点:

缺点:

扩展:

相关设计模式:

源码:
jdk-XmlAdapter等
spring-AdviceAdapter等

一、类的适配器模式结构


类的适配器模式把类的API转换为目标类API。

角色:

public interface Target{
    //源类有的方法
    void sampleOperation1();

    //源类没有的方法
    void sampleOperation2();
}
public class Adaptee{
    public void sampleOperation1(){}
}
public class Adapter extends Adaptee implements Target{
    public void sampleOperation2(){
    ...
    }
}

二、对象的适配器模式结构

对象适配器模式不使用继承关系连接到Adaptee类,而是使用委派关系。



角色:

public interface Target{
    //源类有的方法
    void sampleOperation1();

    //源类没有的方法
    void sampleOperation2();
}
public class Adaptee{
    public void sampleOperation1(){}
}
public class Adapter implements Target{
    private Adaptee Adaptee;
    public Adapter(Adaptee adaptee){
        super();
        this.adaptee=adaptee;
    }

    //源类有此方法,因此适配器类可以直接委派
    public void sampleOperation1(){
        adaptee.sampleOperation1();
``}

    //源类没有此方法,由适配器补充
    public void sampleOperation2(){
      ...
    }
}

适配器模式是将接口不同而功能相同或相近的两个接口加以转换。

对象适配器效果:

三、什么情况使用适配器模式

上一篇 下一篇

猜你喜欢

热点阅读