适配器模式

  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("鼠标点击事件被处理");
    }
}
``` 
相关推荐
pan_junbiao9 分钟前
Spring框架的设计模式
java·spring·设计模式
远方160910 分钟前
0x-2-Oracle Linux 9上安装JDK配置环境变量
java·linux·oracle
北执南念16 分钟前
CompletableFuture+线程池使用案列
java
黄交大彭于晏1 小时前
发送文件脚本源码版本
java·linux·windows
钮钴禄·爱因斯晨1 小时前
Java 面向对象进阶之多态:从概念到实践的深度解析
java·开发语言·数据结构
鸽子炖汤1 小时前
Java中==和equals的区别
java·开发语言·jvm
hstar95271 小时前
二、即时通讯系统设计经验
java·架构
风象南2 小时前
SpringBoot的4种死信队列处理方式
java·spring boot·后端
互联网全栈架构3 小时前
遨游Spring AI:第一盘菜Hello World
java·人工智能·后端·spring
优秀的颜4 小时前
计算机基础知识(第五篇)
java·开发语言·分布式