Java适配器模式示例分析
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本篇内容主要讲解"Java适配器模式示例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java适配器模式示例分析"吧!定义适配器模式,即将某个类的接口
千家信息网最后更新 2025年11月09日Java适配器模式示例分析
本篇内容主要讲解"Java适配器模式示例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java适配器模式示例分析"吧!
定义
适配器模式,即将某个类的接口转换成客户端期望的另一个接口的表示,主要目的是实现兼容性,让原本因为接口不匹配,没办法一起工作的两个类,可以协同工作。
分类
类适配器
对象适配器
接口适配器
案例
需求
手机充电,通过手机充电器将220V电压适配为5V
方案一:类适配器
定义220V交流电(被适配者的角色)
/** * 220V交流电(被适配者的角色) * @author:liyajie * @createTime:2022/2/17 21:41 * @version:1.0 */public class Ac { public int outputAc(){ int srcV = 220; System.out.println(srcV + "V交流电"); return srcV; }}定义5v直流电(目标对象的角色)
/** * 5v直流电(目标对象的角色) * @author:liyajie * @createTime:2022/2/17 21:44 * @version:1.0 */public interface Dc { int outputDc();}定义适配器
/** * 手机充电适配器 * @author:liyajie * @createTime:2022/2/17 21:45 * @version:1.0 */public class PhoneAdapter extends Ac implements Dc{ @Override public int outputDc() { // 获取220V交流电 int srcV = outputAc(); // 模拟适配器过程,转换为5v直流电 int targetV = srcV / 44; System.out.println("电压已经适配为" + targetV + "V" ); return targetV; }}定义手机类
/** * 手机类 * @author:liyajie * @createTime:2022/2/17 21:48 * @version:1.0 */public class Phone { public void charge(Dc dc){ if(dc.outputDc() == 5){ System.out.println("电压正常,可以安全充电"); }else { System.out.println("电压异常,危险!"); } }}定义测试类
/** * 测试类 * @author:liyajie * @createTime:2022/2/18 10:56 * @version:1.0 */public class Test { public static void main(String[] args) { new Phone().charge(new PhoneAdapter()); }}查看测试结果
方案二:对象适配器
该方案只需要改造手机适配器类即可,如下:
/** * 手机充电适配器 * @author:liyajie * @createTime:2022/2/17 21:45 * @version:1.0 */public class PhoneAdapter implements Dc { private Ac ac; public PhoneAdapter(Ac ac){ this.ac = ac; } @Override public int outputDc() { // 获取220V交流电 int srcV = ac.outputAc(); // 模拟适配器过程,转换为5v直流电 int targetV = srcV / 44; System.out.println("电压已经适配为" + targetV + "V" ); return targetV; }}改造测试类
/** * 测试类 * @author:liyajie * @createTime:2022/2/18 11:12 * @version:1.0 */public class Test { public static void main(String[] args) { new Phone().charge(new PhoneAdapter(new Ac())); }}查看测试结果
方案三:接口适配器
需要改造的如下: 定义一个默认的适配器,作用是实现Dc的多个方法,使其他的自定义适配器用来继承,扩展
/** * 默认适配器 * @author:liyajie * @createTime:2022/2/17 21:45 * @version:1.0 */public class DefaultAdapter implements Dc { @Override public int outputDc() { return 0; }}定义手机适配器
/** * 手机充电适配器 * @author:liyajie * @createTime:2022/2/17 21:45 * @version:1.0 */public class PhoneAdapter extends DefaultAdapter { private Ac ac; public PhoneAdapter(Ac ac){ this.ac = ac; } @Override public int outputDc() { // 获取220V交流电 int srcV = ac.outputAc(); // 模拟适配器过程,转换为5v直流电 int targetV = srcV / 44; System.out.println("电压已经适配为" + targetV + "V" ); return targetV; }}定义手机类
/** * 手机类 * @author:liyajie * @createTime:2022/2/17 21:48 * @version:1.0 */public class Phone { public void charge(int v){ if(v == 5){ System.out.println("电压正常,可以安全充电"); }else { System.out.println("电压异常,危险!"); } }}定义测试类
/** * 测试类 * @author:liyajie * @createTime:2022/2/18 11:57 * @version:1.0 */public class Test { public static void main(String[] args) { new Phone().charge(new PhoneAdapter(new Ac()).outputDc()); }}查看测试结果
对比分析
方案一:类适配器
优势:由于它是继承被适配者,可以根据需求,重写被适配者的方法,灵活性较好
劣势:由于继承是单继承属性的,目标对象必须是一个接口,有一定的局限性
方案二:对象适配器
改造适配类,将继承被适配者,修改为持有被适配者,遵循合成复用原则,使用关联关系代替继承关系,进一步解耦,提高扩展性
方案三:接口适配器
接口适配器模式,又叫缺省适配器模式,通过设计一个中间抽象类,去实现接口,为接口中的每个方法都提供一个默认实现,然后再定义一个具体的适配器继承默认的适配器,只需要重写自己需要重写的方法即可
到此,相信大家对"Java适配器模式示例分析"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
适配
适配器
手机
接口
测试
电压
方案
模式
交流电
对象
交流
方法
直流电
分析
角色
改造
示例
目标
结果
过程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
保行天下软件开发公司
大学生体重胸围数据库
鲲鹏服务器授权供应商
改数据库 导入
互联网科技论文800字
信息中心网络安全应急预案
红人点点app软件开发
书本封面设计软件开发
互联网属于哪次科技成果
有哪些平台可以做软件开发
惠普笔记本网络安全密匙
泰山杯网络安全大赛团体得分
网络安全事件100字
软件开发可行性分析一般来说
湖北互联网软件开发市场
看护苗网络安全课观后感
数据库培训怎么样
软件开发公司做推广
生成导入数据库文件
如何在服务器建立虚拟专线
在线教育数据库ppt
软件开发免费软件
兰州格罗互联网科技有限公司
网络技术和校园生活感悟
安卓平板服务器
基本数据库检测失败
收费网络安全问题解析
域名服务器在哪里
网络安全应急指挥中心工资
IQVIA数据库 使用说明