适配器模式

  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("鼠标点击事件被处理");
    }
}
``` 
相关推荐
愤豆14 小时前
06-Java语言核心-JVM原理-JVM内存区域详解
java·开发语言·jvm
杰克尼14 小时前
知识点总结--day07(Spring-MVC框架)
java·spring·mvc
顶点多余14 小时前
从源码深度探究“线程控制“
java·linux·开发语言
网安2311石仁杰14 小时前
ZAP 主动扫描模块精读:从代码层面理解安全检测引擎的设计与质量
java·安全
码上生存指南14 小时前
技术栈要不要追新?我为此换过一次工作,结论是……
java·程序人生
chehaoman14 小时前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
Fang fan14 小时前
Netty入门
java·开发语言·redis·分布式·python·哈希算法
我真会写代码14 小时前
Java程序员常用设计模式详解(实战版)
java·开发语言·设计模式
夫礼者15 小时前
【极简监控】不骗篇幅!7个零运维成本的排障“微操”,让线上问题彻底左移
java·运维·监控
matlabgoodboy15 小时前
Python代做java代码编写C++大数据R语言Hadoop/spark/flink/C语言
java·大数据·python