• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

RomanLin

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

【设计模式与体系结构】结构型模式-适配器模式

引言

张三从国内带了个家用电器(220V)去到美国,但是插上电以后却发现电器不能正常工作。经过了解,原来美国的标准电压是120V,而国内是220V。于是张三恍然大悟:原来是电压不适配导致的机器无法正常工作。张三找人要来了变压器,于是解决了这个问题。

这里所说的“变压器”,就相当于编程时的适配器。为了更规范地编程,设计模式中专门总结了适配器模式。

简介

适配器模式(Adapter Pattern)指的是将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作。适配器模式分为类适配器模式和对象适配器模式,适配器和适配者的关系在前者中是继承或实现关系,后者是关联关系,前者耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对少些。

适配器模式的角色

  • 目标(Target)接口:目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是一个具体类
  • 适配器(Adapter)类:自定义的适配器
  • 适配者(Adaptee)类:可以简单理解为组件库中已有的组件

适配器模式的类型

  1. 类适配器模式:适配器和适配者的关系是继承或实现关系。值得注意的是,若适配者类是final类,则无法使用类适配器模式
  2. 对象适配器模式:适配器和适配者的关系是关联关系,因为关联关系的耦合程度比继承关系、实现关系都低,因此对象适配器模式使用较多

适配器模式的优点

  1. 实现了类的复用
  2. 灵活性好:可以在不修改原有代码的基础上,通过适配器来添加新的功能或者改变接口的调用方式。这样在系统升级或者功能扩展时,能够更好地维护代码的稳定性。

适配器模式的缺点

  1. 增加系统复杂度:引入新的适配器,会增加系统的层次和耦合度,会使得项目复杂难以理解、维护困难
  2. 性能损耗:由于需要进行适配操作,有可能造成性能上的一定损耗

正文

类适配器

类适配器的类图如下:

注:Java 不支持多继承,上述类图可以理解为一个为继承关系,一个是实现关系。

对象适配器

对象适配器的类图如下:

posted on 2025-01-20 19:36  RomanLin  阅读(31)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3