- 原理阐述:当接口抽象方法多,而实际仅需部分方法时,直接实现接口需重写全部抽象方法,代码冗余且不灵活。适配器设计模式可解决此问题,通过创建适配器类,先对接口抽象方法空实现,让真正使用的实现类继承适配器类,按需重写方法,简化开发。
- 步骤说明
- 编写中间类 :创建
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("鼠标点击事件被处理");
}
}
```