• 设计模式-5适配器模式


    适配器模式

    基本介绍

    • 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)
    • 适配器模式属于结构型模式(调节结构的)
    • 主要分为三类:
      • 类适配器模式
      • 对象适配器模式
      • 接口适配器模式

    适配器模式的工作原理

    • 适配器模式:将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容
    • 使用户的角度看不到被适配者,是解耦的
    • 用户调用适配器转化出来的目标接口方法,适配器再去调用被适配者的相关接口方法
    • 用户收到反馈结果,感觉只适合目标接口交互

    类适配器模式

    ​ 被适配的类不满足现有类的需要,需要定义一个接口,让适配器来继承被适配者和接口(接口定义了转换的方法),适配器来实现接口的方法,现有类需要使用到被适配者的时候,需要传入一个接口类对象,然后使用接口类的子类(适配器类),调用适配器对象的转换方法,实现转换

    1、由于 JAVA 至多继承一个类,所以至多只能适配一个适配者类,而且目标类必须是抽象类。 2、src类的方法在Adapter中都会暴露出来,增加了使用的成本

    对象适配器

    1. 在类适配器上加以修改,不再继承src,而是持有src类的实例,解决兼容问题

    2. 在系统中尽量使用关联关系来代替继承关系

    3. 对象适配器是适配器模式中常用的一种

    通过adapter中的构造器传入一个被适配类的对象

    注意事项和细节
    • 对象适配器和类适配器算是同一种思想,实现方法不同而已,根据合成复用原则,将原本的继承改为组合,解决了类适配器必须继承src类的局限性,也不再要求dst必须是接口
    • 成本更低,更灵活

    接口适配器模式

    • 适配器模式(Default) 或者叫做 缺省适配器模式
    • 当不需要全部实现接口提供的方法是,可显示设计一个抽象类实现接口,并为该接口中每个方法提供一个默认实现(空方法),那么该抽象类的子类可有选择地覆盖父类的某些方法来实现需求
    • 适用于一个接口不想使用其所有的方法的情况

    优点:1、可以让任何两个没有关联的类一起运行。 2、提高了类的复用。 3、增加了类的透明度。 4、灵活性好(Adapter),重写了src的方法。

    缺点: 1、过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。

    使用场景:有动机地修改一个正常运行的系统的接口,这时应该考虑使用适配器模式。

    注意事项:适配器不是在详细设计时添加的,而是解决正在服役的项目的问题。

  • 相关阅读:
    继续搞我的linux
    MySQL 开始
    我的小程序终于完工
    列表页 编辑页 删除页
    开发 记账小程序研发
    vue使用饿了么element-ui框架中的上传组件进度条无法使用,:on-progress钩子无法触发的原因
    移动端调试神器vConsole
    全栈高级web前端工程师的必经之路
    在vue中使用elementUI饿了么框架使用el-tabs,切换Tab如何实现实时加载,以及el-table表格使用总结
    GitBook的使用方式,快速创建网页文档
  • 原文地址:https://www.cnblogs.com/lovestart/p/11253068.html
Copyright © 2020-2023  润新知