23种设计模式【结构型模式】详细介绍之【适配器模式】
设计模式的分类和应用场景总结
可以查看专栏设计模式:设计模式
适配器模式
在软件设计模式中,适配器模式是一种常见且重要的结构型模式。它用于将一个类的接口转换为客户端期望的另一个接口,从而使原本由于接口不兼容而无法一起工作的类可以协同工作。
1. 概述
适配器模式通过在不修改现有代码的情况下,使现有类与新接口兼容。这在需要集成第三方库或旧系统时特别有用。
2. 实现方式
适配器模式有两种主要实现方式:类适配器和对象适配器。
2.1 类适配器
通过多重继承实现适配器,使适配器类继承自一个具体类和一个接口。
// 目标接口
interface Target {
void request();
}
// 现有类
class Adaptee {
void specificRequest() {
System.out.println("特殊请求");
}
}
// 类适配器
class ClassAdapter extends Adaptee implements Target {
public void request() {
specificRequest();
}
}
// 使用类适配器
public class Client {
public static void main(String[] args) {
Target target = new ClassAdapter();
target.request();
}
}
2.2 对象适配器
通过组合方式实现适配器,适配器类持有现有类的实例。
// 目标接口
interface Target {
void request();
}
// 现有类
class Adaptee {
void specificRequest() {
System.out.println("特殊请求");
}
}
// 对象适配器
class ObjectAdapter implements Target {
private Adaptee adaptee;
public ObjectAdapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
public void request() {
adaptee.specificRequest();
}
}
// 使用对象适配器
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Target target = new ObjectAdapter(adaptee);
target.request();
}
}
3. 适配器模式的优缺点
3.1 优点
- 提高类的复用性: 适配器模式使得原本不兼容的类能够协同工作,提高了类的复用性。
- 灵活性和扩展性: 可以在不修改现有代码的情况下引入新功能。
3.2 缺点
- 增加系统复杂性: 适配器模式会增加系统的复杂性,因为需要增加一层新的适配器。
4. 使用场景
适配器模式适用于以下场景:
- 已有类的接口与需求不匹配: 需要使用现有类,但其接口与需求不一致时。
- 想要封装第三方库或旧系统: 需要在新系统中使用第三方库或旧系统的类,而它们的接口不符合当前系统设计。
5. 总结
适配器模式是一种简单而有效的结构型模式,能够将不兼容的接口结合在一起,使得系统更灵活。通过适配器模式,可以在不修改现有代码的情况下实现接口的转换,提高了代码的复用性和可维护性。
版权声明:
原创博主:牛哄哄的柯南
博主原文链接:https://keafmd.blog.csdn.net/
个人博客链接:https://www.keafmd.top/
看完如果对你有帮助,感谢点击下面的点赞支持!
[哈哈][抱拳]
加油!
共同努力!
Keafmd
感谢支持牛哄哄的柯南,期待你的三连+关注~~
keep accumulate for my dream【共勉】
↓ ↓ ↓ ↓ ↓ ↓