适配器模式

  1. 原理阐述:当接口抽象方法多,而实际仅需部分方法时,直接实现接口需重写全部抽象方法,代码冗余且不灵活。适配器设计模式可解决此问题,通过创建适配器类,先对接口抽象方法空实现,让真正使用的实现类继承适配器类,按需重写方法,简化开发。
  2. 步骤说明
    • 编写中间类 :创建 XXXAdapter 类实现对应接口,它是适配器模式的核心桥梁,起到过渡作用。
    • 空实现抽象方法:在适配器类中对接口所有抽象方法空实现,后续实现类无需关注未用到的方法。
    • 继承与重写:让真正的实现类继承适配器类,按需重写需使用的方法,减少代码量,提高开发效率。
    • 修饰适配器类 :将适配器类用 abstract 修饰,避免其他类创建其对象,保证它仅作为抽象父类供实现类继承,符合设计意图。

示例代码

假设存在接口 EventLisener 有多个抽象方法,我们仅需使用其中一个方法。

java 复制代码
// 接口
interface EventLisener {
    void onMouseClick();
    void onMouseMove();
    void onKeyPress();
}

// 适配器类
abstract class EventLisenerAdapter implements EventLisener {
    @Override
    public void onMouseClick() {}
    @Override
    public void onMouseMove() {}
    @Override
    public void onKeyPress() {}
}

// 真正的实现类
class MyEventListener extends EventLisenerAdapter {
    @Override
    public void onMouseClick() {
        System.out.println("鼠标点击事件被处理");
    }
}
``` 
相关推荐
代码什么用6 小时前
Spring基础使用
java·后端·spring
Su米苏6 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园7 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁7 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网7 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西7 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨7 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
小卡车5558 小时前
java反射、自定义注解的应用(自定义分页)
java
BLUcoding9 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
yuniko-n9 小时前
【JUC】Lock 和 synchronzied 锁
java