zoukankan      html  css  js  c++  java
  • 设计模式-适配器模式

    先举例子,安卓的耳机怎么插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();
        }
    }

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

    不和别人一样,不复制只真正理解
  • 相关阅读:
    Linux下安装Blender
    自我复制的3D打印机
    ODOO v10.0 自动生成财务凭证的科目设置
    初识Odoo的辅助核算
    Odoo9以后的社区版本和企业版功能上的区别
    06: linux中find查找命令总结
    02: shell中的if、case、for等语句
    01: shell基本使用
    05: 配置yum源
    04: linux基础总结-centos6.5
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12785203.html
Copyright © 2011-2022 走看看