美文网首页
设计模式之适配器模式

设计模式之适配器模式

作者: 成为一个无趣的人 | 来源:发表于2020-03-08 14:40 被阅读0次

    设计模式之适配器模式

    1. 模式定义

    适配器模式又称包装器模式,属于结构型模式,它可以将一个接口转换成客户希望的另一个接口。适配器模式使接口不兼容的那些类可以一起工作。[1]

    ​ -[1] 图说设计模式

    2. UML类图

    适配器模式

    3. 代码描述

    package com.lemon.adapter;
    
    /**
     * @author Hello
     * @description 被适配对象
     * @date 2020-03-08 11:55
     */
    public class Adaptee {
        public void request() {
            System.out.println("do something");
        }
    }
    
    package com.lemon.adapter;
    
    /**
     * @author Hello
     * @description 适配器对象
     * @date 2020-03-08 11:56
     */
    public class Adapter extends Adaptee implements Target{
        @Override
        public void adapt() {
            super.request();
        }
    }
    
    package com.lemon.adapter;
    
    /**
     * @author Hello
     * @description 适配接口
     * @date 2020-03-08 11:56
     */
    public interface Target {
        void adapt();
    }
    
    package com.lemon.adapter;
    
    /**
     * @author Hello
     * @description 客户端调用
     * @date 2020-03-08 11:58
     */
    public class Client {
        public void callRequest() {
            Target target = new Adapter();
            target.adapt();
        }
    }
    

    4. 总结

    • 适配器模式将目标类与适配者类解耦,通过引入一个适配器类来重用现有的适配者类,而无需修改原有代码。

    • 适配器模式增加了类的透明性和复用性,将具体时间封装在适配者类中,对于客户端类来说是透明的,而且提高了适配者的复用性。

    • 灵活性和扩展性都非常好,通过使用配置文件,可以很方便地更换适配器,也可以在不修改原有代码的基础上增加新的适配器类,完全符合“开闭原则”。

    • 对于不支持多继承的语言来说,适配器模式一次最多只能是配一个适配者类,而且目标类只能为抽象类或接口,使用有一定的局限性,不能将一个适配者类和它的子类都适配到目标接口。[2]

      ​ -[2] 图说设计模式

    相关文章

      网友评论

          本文标题:设计模式之适配器模式

          本文链接:https://www.haomeiwen.com/subject/wabddhtx.html