设计模式-适配器 | 8lovelife's life
0%

设计模式-适配器

如果你来自中国大陆,正计划去中国澳门旅游,那你一定要记得带上电源转接头,因为澳门的插座无法兼容中国大陆使用的插头,如果你没有电源转接头,那你的手机在澳门就无法充电喽,那为什么不在澳门安装支持中国大陆插头的插座呢?这种重构成本太高了吧。。。在软件系统开发中,同样会存在接口不兼容的问题,这时候我们可以使用 适配器(包装器) 设计模式来解决兼容问题

简介

适配器模式属于结构型模式,可以在不修改现有代码的情况下,将一个或多个类的接口转换为所需的接口。适配器涉及三个角色:目标接口、适配器和适配者。目标接口是使用方期望的接口,适配器将适配者接口转换为目标接口,适配者是需要被适配的对象。适配器模式有三种不同变体:类适配器、对象适配器、接口适配器(或缺省适配器)。在本博客中我们将使用电源转接头事例子,来说明这三种适配器模式的不同

类适配器

在类适配器中,适配器通过 继承适配者 进行目标适配

imag

对象适配器

在对象适配器中,适配器通过 组合适配者 进行目标适配
imag

接口适配器

接口适配器通过 抽象类实现 目标接口,使用方通过创建匿名类进行方法的按需适配
imag

应用场景

适配器模式主要用于解决接口功能兼容问题,无需改变现有代码。常见使用场景有

  1. 重构:在代码重构时,我们可能需要修改接口,但是修改可能会影响到现有的代码,导致接口依赖方发生不可知错误,因此可以通过适配器模式来进行重构,同时也能兼容现有代码
  2. 系统集成:在不同系统之间集成时,可能存在不同的接口,这时也可以使用适配器模式将不同的接口转换成统一的接口