🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~
津津乐道设计模式 - 适配器模式详解
- 什么是适配器模式
- 适配器模式的应用场景
- 生活案例
- 代码案例
- 适配器模式优缺点
- 结语
什么是适配器模式
适配器模式(Adapter Pattern)是一种结构设计模式,用于将一个类的接口转换成用户所期望的另一个接口。它允许原本接口不兼容的类能够一起工作,提供了类与类之间的适配器,以便使它们能够协同工作。
意图
类图
适配器模式的应用场景
接口不兼容
:当现有类的接口与所需接口不兼容时,可以使用适配器模式来转换接口,使其能够协同工作。类的重用
:如果你希望重用一些已经存在的类,但是它们的接口与你所需的接口不匹配,适配器模式可以帮助你将这些类集成到你的系统中。封装第三方库
:当你使用一个第三方库或组件,但是它的接口与你的代码不兼容时,可以使用适配器模式将其封装起来,以便与你的代码进行交互。解耦性
:适配器模式可以将客户端代码与具体类解耦,提高代码的灵活性和可维护性。
适配器模式适用于在不同接口之间进行适配的场景。它可以帮助我们解决接口不兼容的问题,实现系统的平滑过渡和集成,提高系统的灵活性和可维护性。
在我们日常生活中也经常能看到类似🉐️场景,比如电源插座转换头、手机充电转换头、显示器转换头等
生活案例
今天你的老婆海淘了一个美国生产的吹风机,然而你的老婆并不知道中国的电源标准是220V,而美国的电源标准是110V。这意味着这个美国生产的电吹风机在中国无法直接插入插座并工作。
在这种情况下,你可以使用适配器模式来解决问题。你可以购买一个电源适配器,它可以将中国的220V电源转换为适合美国电器的110V电源,从而解决你老婆的烦恼。
适配器模式将不兼容的接口转换为可兼容的接口。在这个场景中,电源适配器充当了一个适配器,将中国的插座(220V)适配为美国电器所需的插座(110V)。通过使用适配器,你完美解决了电源不兼容的问题,你老婆对你猛猛一顿夸 👏👏
代码案例
上面电源适配器案例中,我们可以创建一个适配器类,它实现了目标接口,并在内部持有一个适配者对象。适配器类将适配者的方法调用转换为符合目标接口的方法调用
首先,创建一个目标接口
/**
* 目标接口
*/
public interface PowerSocket {
void supplyPower();
}
构建电源适配者
/**
* 构建国内电源适配者
*/
public class ChinesePowerSocket {
public void supplyPower220V() {
System.out.println("使用中国插座供电,输出220V电压");
}
}
创建电源适配器类
/**
* 电源适配器类
*/
public class PowerAdapter implements PowerSocket{
private ChinesePowerSocket powerSocket;
public PowerAdapter(ChinesePowerSocket powerSocket) {
this.powerSocket = powerSocket;
}
@Override
public void supplyPower() {
System.out.println("通过适配器将电压转换为110V");
powerSocket.supplyPower220V();
}
}
最后测试代码
public class AdapterPatternTest {
public static void main(String[] args) {
ChinesePowerSocket chinesePowerSocket = new ChinesePowerSocket();
PowerAdapter powerAdapter = new PowerAdapter(chinesePowerSocket);
powerAdapter.supplyPower();
}
}
最后输出效果如下:
适配器模式优缺点
适配器模式具有以下优点:
- 适配器模式可以将不兼容的接口转换为可兼容的接口,使得原本无法协同工作的类能够一起工作,提高了代码的复用性和灵活性。
- 适配器模式可以将适配器作为一个中间层,将客户端代码与具体类解耦,降低了类之间的耦合度,使得系统更加灵活和可维护。
- 适配器模式可以通过增加新的适配器类来适配新的目标接口,而无需修改现有代码,符合开闭原则,对系统的扩展性和维护性有益。
适配器模式也有一些缺点:
- 引入适配器会增加代码的复杂性,特别是当涉及多个适配器或复杂的适配逻辑时。过度使用适配器模式可能导致代码难以理解和维护。
- 适配器模式引入了额外的间接层,可能会导致一定的性能损失。在性能敏感的场景中,需要权衡适配器带来的便利性和性能开销。
结语
本章主要介绍了什么是适配器模式,适配器模式的应用场景,并以一个实实在在的生活案例,演示了适配器模式的使用,方便大家加深印象~ 最后也总结了适配器模式优缺点,如果本文对你有用,欢迎关注收藏评论,大家一起探讨~