Java设计模式之适配器设计模式
1、适配器模式( Adapter)定义
将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原来由于接口不兼容而不能一起工作的 那些类可以一起工作。 现实案例如下:
墙上电源类(220 伏)
笔记本类(客户,需要的电压<36 伏)
适配器类(将 220 伏墙上电源类转换为<36 伏的电压)
2、模式场合
当系统的数据和行为都正确,但接口不符时,此时可以考虑用适配器,目的是使控制范围之外的一个原有对 象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况, 比如在需要对早期代码复用一些功能等应用上很有实际价值。 适配器模式有两种类型:类适配器模式和对象适配器模式,由于类适配器模式通过多重继承实现,不提倡使 用,这里主要讲解对象适配器模式。
3、适配器模式举例代码
3.1、Target类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.designmode.adapter; 2 3 public interface Target { 4 5 void request(); 6 }
3.2、Adaptee类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.designmode.adapter; 2 3 public class Adaptee { 4 5 public void specificRequest(){ 6 System.out.println("特殊请求"); 7 } 8 }
3.3、Adapter类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.designmode.adapter; 2 3 public class Adapter implements Target { 4 5 private Adaptee adaptee; 6 7 public Adapter() { 8 adaptee = new Adaptee(); 9 } 10 11 @Override 12 public void request() { 13 adaptee.specificRequest(); 14 } 15 16 }
3.4、测试类AdapterTest
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.designmode.adapter; 2 3 public class AdapterTest { 4 5 public static void main(String[] args) { 6 Target target = new Adapter(); 7 target.request(); 8 } 9 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步