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();
        }
    }

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

    不和别人一样,不复制只真正理解
  • 相关阅读:
    线程
    简单排序
    SSM的整合
    SpringMVC中的拦截器、异常处理器
    SpringMVC的文件上传
    SpringMVC的数据响应和结果视图
    springMVC的常用注解
    SpringMVC入门
    Spring中声明式事务控制
    JdbcTemplate在spring中的使用
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12785203.html
Copyright © 2011-2022 走看看