设计模式11.适配器模式

Posted jiazhongxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式11.适配器模式相关的知识,希望对你有一定的参考价值。

适配器模式

  适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

 

结构图:

技术图片

 

 

Target:客户想要的目标类。

Adapter:适配器类,包含Adaptee对象,将原接口转换为目标接口。

Adaptee:适配者类。

 

例:

public interface Target {
    void request(int voltage); // 获取对应电压的交流电
}

 

public class Adapter implements Target {
    private Adaptee1 adaptee1 = new Adaptee1();
    private Adaptee2 adaptee2 = new Adaptee2();
    @Override
    public void request(int voltage) {
        System.out.println("我是适配器,将选择适配的对象进行方法调用");
        if (voltage == 110) {
            adaptee1.request();
        }else if(voltage == 220){
            adaptee2.request();
        }else{
            System.out.println("没有适配的");
        }

    }
}

 

public class Adaptee1 {    // 适配者1(110V交流电)
    public void request(){
        System.out.println("我是110V交流电");
    }
}

 

public class Adaptee2 {    // 适配者2(220V交流电)
    public void request(){
        System.out.println("我是220V交流电");
    }
}

 

public class Test {
    public static void main(String[] args) {
        Target target = new Adapter();  // 客户想要的目标对象
        target.request(220);            // 调用目标方法(实际通过适配器调用了真正适配的对象的方法)
    }
}

 

输出:

我是适配器,将选择适配的对象进行方法调用
我是220V交流电

 

可见,通过适配器类实现目标类和适配者类解耦

以上是关于设计模式11.适配器模式的主要内容,如果未能解决你的问题,请参考以下文章

Fragment的ListView项接口定义中的按钮?

尝试使用片段保存夜间模式状态

C++常用的11种设计模式解释及示例

需要从寻呼机适配器识别当前视图片段

设计模式11.适配器模式

设计模式11.适配器模式