码迷,mamicode.com
首页 > 其他好文 > 详细

【设计模式】11.适配器模式

时间:2020-05-06 21:55:55      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:info   方法   void   对象   mil   vat   static   public   技术   

适配器模式

  适配器模式(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.适配器模式

标签:info   方法   void   对象   mil   vat   static   public   技术   

原文地址:https://www.cnblogs.com/jiazhongxin/p/12838837.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!