一、适配器模式,就像是你的电脑的电源一样,可以将220v的电压转化为你电脑能够承受的电压,又如从美国带回来的电器,需要一个适配电源将电压220v改成110v
二、适配器的两种模式:类的适配器和对象适配器
三、类适配器(主要使用继承方式来适配)
1、类适配器模式
AmericaPower.java(美国的电源头是三个脚的)
package com.adapterModel.classAdapter; public interface AmericaPower { public void threeStep(); }
APower.java(美国电源插头的具体实现类)
package com.adapterModel.classAdapter; public class APower implements AmericaPower { @Override public void threeStep() { System.out.println("我是三角的电源"); } }
ChinaPower.java(中国电源插头的接口类)
package com.adapterModel.classAdapter; public interface ChinaPower { public void twoStep(); }
CPower.java(中国插头的具体实现类)
package com.adapterModel.classAdapter; public class CPower extends APower implements ChinaPower { @Override public void twoStep() { this.threeStep(); } }
测试类
package com.adapterModel.classAdapter; public class Test { public static void main(String[] args) { ChinaPower chinaPower = new CPower(); //插入两脚的电源线,可以适配三角的插头。 chinaPower.twoStep(); } }
2、对象适配器
AmericaPower.java
package com.adapterModel.instanceAdapter; public interface AmericaPower { public void threeStep(); }
APower.java
package com.adapterModel.instanceAdapter; public class APower implements AmericaPower { @Override public void threeStep() { System.out.println("我是三角的电源"); } }
ChinaPower.java
package com.adapterModel.instanceAdapter; public interface ChinaPower { public void twoStep(); }
CPower.java(内有一个美国插头的实例对象)
package com.adapterModel.instanceAdapter; public class CPower implements ChinaPower { private AmericaPower ap = new APower(); @Override public void twoStep() { ap.threeStep(); } }
测试类
package com.adapterModel.instanceAdapter; public class Test { public static void main(String[] args) { ChinaPower chinaPower = new CPower(); //插入两脚的电源线,可以适配三角的插头。 chinaPower.twoStep(); } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~