-
适配器模式
将一个类的接口转换成业务需求的另一个接口,适配器模式使原本两个或多个不兼容的接口可以兼容一起工作。
-
适用性
1)想使用已经存在的接口,而不符合现在的需求。
2)想创建一个可以服用的类,该类可以与不相关类的或不可预知的类协同工作。
3)想使用一些已经存在的子类,而又不想为每个子类新增转换接口,而适配器对象可以适配其父类接口。 -
举例
例如电脑都有一个适配电源,可以接入100-240付的交流电,最终输出到电脑的都是20付的直流电。
-
UML类图

-
代码示例
- 定义一个电源接口,接口的实现电流在100-240付之间。
package com.jin.demo.DesignPatterns.Adapter; /** * 电源接口 * @auther jinsx * @date 2019/6/18 14:03 */ public interface Power { void isPower(); } - 定义电源接口实现类
package com.jin.demo.DesignPatterns.Adapter; /** * 电源接口实现类 * @auther jinsx * @date 2019/6/18 14:03 */ public class PowerImpl implements Power{ @Override public void isPower(){ System.out.println("调用220付的交流电源"); } } - 定义一个笔记本接口
package com.jin.demo.DesignPatterns.Adapter; /** * 笔记本接口 * @auther jinsx * @date 2019/6/18 14:07 */ public interface NoteBook { void isNoteBook(); } - 创建一个适配器,实现了电脑接口,可以转换100-240付交流电为20付直流电。
package com.jin.demo.DesignPatterns.Adapter; /** * 适配器 * @auther jinsx * @date 2019/6/18 14:09 */ public class NoteBookAdapter implements NoteBook { private Power power; public NoteBookAdapter(Power power){ this.power = power; } @Override public void isNoteBook(){ System.out.println("笔记本需要20付直流电源"); power.isPower(); System.out.println("经过处理转成20付直流电源"); } } - 创建一个测试类
package com.jin.demo.DesignPatterns.Adapter; /** * 测试类 * @auther jinsx * @date 2019/6/18 14:20 */ public class TestNoteBook { public static void main(String[] args){ NoteBook nb = new NoteBookAdapter(new PowerImpl()); nb.isNoteBook(); } } - 执行测试结果
笔记本需要20付直流电源 调用220付的交流电源 经过处理转成20付直流电源
- 定义一个电源接口,接口的实现电流在100-240付之间。
-
点击Java之23种设计模式查看更多的设计模式
Java设计模式之适配器模式
最新推荐文章于 2025-07-24 20:17:42 发布
本文介绍了Java中的适配器模式,它能将一个类的接口转换成业务所需的另一个接口,使不兼容的接口兼容工作。阐述了其适用性,如使用已存在但不符合需求的接口等,还给出电脑适配电源的例子,并展示了UML类图和代码示例。

513

被折叠的 条评论
为什么被折叠?



