第10章 适配器模式(类结构型、对象结构型)

适配器模式是一种结构型设计模式,旨在让接口不兼容的类能够协同工作。它通过创建一个适配器类来转换适配者类的接口,使得原本无法交互的类可以一起运行。适配器模式分为类适配器和对象适配器两种形式,分别适用于Java等不支持多重继承的语言和需要适配多个适配者的情况。这种模式能有效解耦系统,提高代码的复用性和灵活性,遵循“开闭原则”。
摘要由CSDN通过智能技术生成

结构型模式:将类/对象组合成更大的结构(搭积木)

类结构型

类的组合

只存在继承关系和实现关系

对象结构型

类与对象的组合

关联关系(在一个类中定义另一个类的实例对象,通过该对象调用其方法)

第10章 适配器模式

将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作。

1.模式动机

使接口不兼容而不能交互的类可以一起工作(电源适配器)

2. 四个角色

  • 目标抽象类(Target):定义客户要用的特定领域接口,可以是抽象类/接口/具体类;在类适配器中,由于Java不支持多重继承,它只能是接口
  • 适配器类(Adapter):调用另一个接口,作为一个转换器对Adaptee和Target进行适配。

类适配器:实现Target接口,继承Adaptee

对象适配器:继承Target,关联Adaptee

  • 适配者类(Adaptee):被适配的角色,定义一个已经存在的接口,这个接口需要适配;一般是具体类,包含了客户希望使用的业务方法
  • 客户类(Client):针对目标抽象类进行编程,调用在目标抽象类重定义的业务方法。

3.适用环境

  • 系统需要使用现有的类,而这些类的接口不符合系统的需要
  • 想建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的类,包括一些可能在将来引进的类一起工作

4.共同优点

  • 将目标类和适配者类解耦,引入适配器类重用适配者类,而无需修改原有代码
  • 增加类透明性和复用性,将具体实现封装在适配者类中
  • 灵活性和扩展性,符合“开闭原则”

5.类适配器

优点:可在适配器类中置换一些适配者的方法

缺点:Java、C#等不支持多重继承,一次最多一个适配者类,且目标抽象类只能为接口,不能将一个适配者类和它的子类都适配到目标接口

6.对象适配器

优点:把多个不同的适配者适配到同一个目标(把适配者和它的子类...)

缺点:需要置换适配者类方法时,要创建适配者子类,并把子类当作真正的适配者

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值