type
status
date
slug
summary
tags
category
icon
password
整理定义
中文名称:适配器模式
英文名称:adapter pattern
出处 | 定义 |
中国大百科全书 | 将一个类的接口转化为用户需要的另一种接口,可以解决系统间接口不相容的问题,从而提高复用性的一种设计模式 |
设计模式 | 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 |
百度百科 | 在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 |
维基百科 | In software engineering, the adapter pattern is a software design pattern (also known as wrapper, an alternative naming shared with the decorator pattern) that allows the interface of an existing class to be used as another interface.[1] It is often used to make existing classes work with others without modifying their source code.
【在软件工程中,适配器模式是一种软件设计模式(也称为包装器,是与装饰器模式共享的另一种命名方式),它允许将现有类的接口用作另一个接口。 它通常用于使现有类与其他类一起工作,而无需修改其源代码。】 |
复述展开
What is adapter pattern?
适配器模式是一种结构性对象设计模式,它可以将一个类的接口转化为另一个接口,而不需要修改源代码,从而解决系统间不兼容的问题。
🌰*1
例如,如果需要小汽车在铁轨上执行,需要增加一个可以在铁轨上的给汽车使用的适配器,然后通过适配器在铁轨上行驶。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdea38628-64dc-40fd-8d17-2efa87e3d554%2F0e996f1b-15f5-4abf-acbd-6e6c48e990fa%2FUntitled.png?table=block&id=d87e1edc-e179-414e-9571-8b4dfb311b25&t=d87e1edc-e179-414e-9571-8b4dfb311b25&width=480&cache=v2)
🌰*2
另一个例子,不同国家的交流电的标准是不一样,有双口插头、也有三项插头,那么在出国旅行时,就需要一个电源适配器来使用。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdea38628-64dc-40fd-8d17-2efa87e3d554%2F881bfb35-cc8f-414d-9195-3aa40263d49f%2FUntitled.png?table=block&id=ad7b4fdc-e028-412f-b003-96bc85de1cf0&t=ad7b4fdc-e028-412f-b003-96bc85de1cf0&width=288&cache=v2)
🌰*3
同样,在软件工程领域,如果不想修改源代码,而有需要为一个新接口进行适配,那就可以用到适配器模式了。
适配器模式的结构
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fdea38628-64dc-40fd-8d17-2efa87e3d554%2F60ea1379-e606-4a31-b86a-3e00d892a815%2FUntitled.png?table=block&id=c9d82ff5-6f75-484e-bce7-2398dffbb01f&t=c9d82ff5-6f75-484e-bce7-2398dffbb01f&width=1200&cache=v2)
- 客户端 (Client) 是包含当前程序业务逻辑的类。
- 客户端接口 (Client Interface) 描述了其他类与客户端代码合作时必须遵循的协议。
- 服务 (Service) 中有一些功能类 (通常来自第三方或遗留系统)。 客户端与其接口不兼容, 因此无法直接调用其功能。
- 适配器 (Adapter) 是一个可以同时与客户端和服务交互的类: 它在实现客户端接口的同时封装了服务对象。 适配器接受客户端通过适配器接口发起的调用, 并将其转换为适用于被封装服务对象的调用。
- 客户端代码只需通过接口与适配器交互即可, 无需与具体的适配器类耦合。 因此, 你可以向程序中添加新类型的适配器而无需修改已有代码。 这在服务类的接口被更改或替换时很有用: 你无需修改客户端代码就可以创建新的适配器类。
理解体会
适配器模式不管是在计算机软件领域,还是在我们的生活中都是随处可见的,为了不修改原有的接口而通过增加一个适配器的方式来兼容新的接口。
这个设计模式的关键在于 Adapter 类,先对新接口的对象进行转化后,然后调用原始的接口,并且将这些分装在 Adapter 类中,这些细节对于外界都是隐藏的,所以能够保证,在不影响原始接口的情况下,也能兼容新的系统逻辑。
快速跳转链接
【概念解析】启动
【概念解析】Day 1 - 10
【概念解析】Day 11 - 20
【概念解析】Day 21 - 30
【概念解析】Day 31 - 40
【概念解析】Day 41 - 50
【概念解析】Day 51 - 60
【概念解析】Day 61 - 70
【概念解析】Day 71 - 80
【概念解析】Day 81 - 90
- 作者:eachenkuang
- 链接:https://kuangyichen.com/article/industry-day34
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。