• 设计模式-适配器模式


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

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

    不和别人一样,不复制只真正理解
  • 相关阅读:
    python练习:http协议介绍
    python练习(-)
    字符集与字符编码的强化理解与操作实践
    jquery设置select选中的文本
    盘点互联网巨头奉献的十大开源安全工具[转]
    $.ajax()函数
    sql事务
    json操作工具-LitJson
    接收图片二进制流并保存图片
    用Linq取两个数组的差集
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12785203.html
Copyright © 2020-2023  润新知