设计模式之适配器模式(结构型)

适配器模式通过转换不兼容接口,使原有类能与新需求配合工作。本文详细介绍了适配器模式的角色、3种形式(类适配器、对象适配器、接口适配器)、使用场景、优缺点,并以Spring MVC的HandlerAdapter为例阐述其在源码中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

适配器模式介绍

        将一个类的接口转换成客户端所期望的另一种接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

        适配器模式是一个补偿模式,或者说是一个“补救”模式,主要功能是进行转换匹配,复用已有的功能,用来解决接口不相容的问题,而不是来实现新的接口。也就是说,客户端需要的功能应该是已经实现好了的,不需要适配器模式来实现,适配器模式主要负责把不兼容的接口转换成客户端期望的样子就可以了。但这并不是说,在适配器里面就不能实现功能。

适配器模式的角色

目标角色:Target,也就是我们期望的接口。
被适配者: Adaptee ,原有的接口,也是希望被适配但不兼容(需转换)的接口。
适配器: Adapter, 将被适配者和目标抽象类组合到一起的类。对 Adaptee 的接口与 Target 接口进行适配。

        适配器模式中被适配的接口 Adaptee 和适配成为的接口 Target 是没有关联的,也就是说   Adaptee 和 Target 中的方法即可以相同,也可以不同。适配器的实现是依靠对象组合的方式。通过给适配器对象组合被适配的对象,然后当客户端调用 Target 的时候,适配器会把相应的功能委托给被适配的对象去完成。

适配器模式的3种形式

适配器模式有3种形式:类适配器、对象适配器、接口适配器

类适配器

        类适配器是通过实现接口适配的,让适配器去实现 Target 的接口,然后继承 Adaptee 的实现。具体适配过程是由我们的适配器的 resuest() 方法中对 Adaptee(要适配者)的 specificRequest() 方法进行适配,使得适配器的 request() 方法返回我们需要的被适配者,供我们使用。

类适配器结构图:

代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值