zoukankan      html  css  js  c++  java
  • 【设计模式】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交流电

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

  • 相关阅读:
    爆打团队 2016.04.12 站立会议
    爆打团队 2016.04.11 站立会议
    爆打团队 2016.04.10 站立会议
    爆打小组 4.3日站立会议
    随机生成题目的代码分析
    爆打 第二周第二次站立会议(2016.3.29)
    爆打小组,四则运算,算法实现
    add some template for ec-final
    2014_acmicpc_shanghai_google
    matrix_world_final_2013
  • 原文地址:https://www.cnblogs.com/jiazhongxin/p/12838837.html
Copyright © 2011-2022 走看看