适配器模式总结
适配器模式(变压器模式/包装模式wrapper)###
定义
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
三个角色
- Target目标角色
该角色定义把其它类转换为何种接口,也就是我们的期望接口,例子中的IUserInfo接口就是目标角色。 - Adaptee源角色
要被转换的角色,它是已经存在、运行良好的类或对象,经过适配器的包装,他会成为一个崭新、靓丽的角色。 - Adapter适配器角色
适配器核心角色,是两个已存在角色的转换桥梁。它的职责就是通过继承或类关联方式把源角色转为目标角色。
使用场景
准备修改一个已经在运行的接口时、系统扩展时, 需要使用一个已有或新建立的类,但该类又不符合要求,就可以使用适配器来完成。
注意事项
在设计之初不要考虑适配器。这个模式的主要场景是在扩展应用时使用。
类适配器:
通过继承方式实现的适配器
对象适配器:
通过对象层次的关联关系实现的适配器
对象适配器与类适配器的区别
类适配器是类间继承,对象适配器是对象的合成关系,也可以说是类的关联关系。实际使用过程中,通过对象适配器方式会做到更易扩展,推荐使用。
参考资料:《设计模式之禅》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了