适配器模式

  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("鼠标点击事件被处理");
    }
}
``` 
相关推荐
爱笑的眼睛1120 小时前
超越 `assert`:深入 Pytest 的高级测试哲学与实践
java·人工智能·python·ai
爱笑的眼睛1120 小时前
超越静态图表:Bokeh可视化API的实时数据流与交互式应用开发深度解析
java·人工智能·python·ai
懂AI的老郑20 小时前
深入理解C++中的堆栈:从数据结构到应用实践
java·数据结构·c++
音符犹如代码20 小时前
深入解析 Apollo:微服务时代的配置管理利器
java·分布式·后端·微服务·中间件·架构
兩尛20 小时前
java基础八股
java·开发语言
【非典型Coder】20 小时前
JVM G1 和 CMS 详解与对比
java·jvm
dddaidai12320 小时前
深入JVM(二):字节码文件的结构
java·开发语言·jvm
bruk_spp20 小时前
linux gpio获取
java·linux·服务器
SadSunset20 小时前
(5)spring的set注入
java·笔记·spring·架构
长而不宰20 小时前
使用 Canal实时监听数据库变化
java·数据库·spring boot