Java学设计模式之适配器模式
一、适配器模式概念
1.1 什么是适配器模式
适配器模式是一种结构型设计模式,它提供了一种将不兼容的接口转化为兼容的接口的方式,从而使原本无法一起工作的类可以协同工作。适配器模式可以分为两种:对象适配器和类适配器。
1.2 对象适配器
对象适配器通过组合的方式,将不兼容的接口适配为所需的接口。这种方式通常使用一个适配器类来组合目标接口和现有接口,并将现有接口的方法转换为目标接口的方法。
1.3 类适配器
类适配器通过继承的方式,将不兼容的接口适配为所需的接口。这种方式通常使用多重继承(在 Java 中是继承类并实现接口)来实现适配。
二、对象适配器模式代码
2.1 目标接口
public interface Target { void request(); }
2.2 源接口
public class Adaptee { public void specificRequest() { System.out.println("Adaptee specificRequest"); } }
2.3 适配器
public class Adapter implements Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } @Override public void request() { // 将目标接口的 request 方法转换为源接口的 specificRequest 方法 adaptee.specificRequest(); } }
2.4 测试类
public class AdapterPatternTest { public static void main(String[] args) { Adaptee adaptee = new Adaptee(); Target target = new Adapter(adaptee); // 调用目标接口的方法 target.request(); // 输出:Adaptee specificRequest } }
三、类适配器模式代码
3.1 目标接口
public interface Target { void request(); }
3.2 源接口
public class Adaptee { public void specificRequest() { System.out.println("Adaptee specificRequest"); } }
3.3 适配器
public class Adapter extends Adaptee implements Target { @Override public void request() { super.specificRequest(); } }
3.4 测试类
public class AdapterPatternTest { public static void main(String[] args) { Target target = new Adapter(); // 调用目标接口的方法 target.request(); // 输出:Adaptee specificRequest } }
四、总结
适配器模式的优点包括:
- 增强了系统的灵活性和可扩展性。
- 可以让不兼容的接口之间的代码协同工作。
缺点包括:
- 增加了代码的复杂度。
- 可能增加维护的成本。
适配器模式适用于希望让不同接口之间的代码可以协同工作的场景,例如希望使用现有库,但其接口不兼容时。
本文作者:启航黑珍珠号
本文链接:https://www.cnblogs.com/Linzj5950/p/18182307
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步