前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式-适配器模式

设计模式-适配器模式

作者头像
cwl_java
发布2019-10-26 20:46:38
2870
发布2019-10-26 20:46:38
举报
文章被收录于专栏:cwl_Java

适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。

1.优点
  • 客户端通过适配器可以透明地调用目标接口。
  • 复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。
  • 将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。
2.代码实例
2.1 需要兼容的接口
代码语言:javascript
复制
public interface Target {

    /**
     * 功能描述:
     * 〈定义一个通用的请求〉
     *
     * @params : []
     * @return : void
     * @author : cwl
     * @date : 2019/6/24 10:01
     */
    void request();
}
2.2 需要被兼容的接口
代码语言:javascript
复制
//可以是一个类,如果需要兼容多个,那么采用多实现来兼容多个
public class Adapter {

    /**
     * 功能描述:
     * 〈一个特殊需要被兼容的请求〉
     *
     * @params : []
     * @return : void
     * @author : cwl
     * @date : 2019/6/24 10:03
     */
    public void specificRequest() {
        System.out.println("适配者中的业务代码被调用!");
    }
}
2.3 具体调用的类
代码语言:javascript
复制
public class ClassAdapter extends Adapter implements Target{
    @Override
    public void request() {

        //调用父类需要兼容的方法
        specificRequest();
    }
}
2.4 测试实例
代码语言:javascript
复制
public class ClassAdapterTest {

    public static void main(String[] args) {
        System.out.println("类适配器模式测试:");
        Target target = new ClassAdapter();
        target.request();
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.优点
  • 2.代码实例
    • 2.1 需要兼容的接口
      • 2.2 需要被兼容的接口
        • 2.3 具体调用的类
          • 2.4 测试实例
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档