首页 > 代码库 > 适配器模式

适配器模式

有买过港版手机的人应该会记得

 

很多都是带着一个三孔转换器

 

而我们国产的基本上都是2个插孔的

 

这是一个充电器,我们也经常会叫做适配器

 

当然这边指的主要是从2头转换成3头,而非交流电压之间的转变

 

了解一个设计模式之前,我们通常都要知道其意图,也就是为了解决什么问题

 

适配器:为客户调用一个不适用的接口的情况,转变成另一个友好可用的接口形式。

 

适配器的模式使用可以理解为三块积木

 

三块积木交合处各不相同,积木1可和积木2交合,积木2可和积木3交合,可积木1和积木3无法交合

 

所以我们遇到的问题是我们需要将积木1和积木3组合起来

 

而我们只能用同时能和积木1和积木3组合的积木2来做此事

 

是故,适配器的模式就好像 小明和小红吵架了,想和好,但是两个人一说话就要再吵架,于是找了两个人都熟悉认识的小黑

 

小黑充当两人的和事佬,于是小明和小红就重归于好了

 

到此,我们应该也就知道适配器的意图了:转换不兼容的接口成为可兼容的接口

 

而在OO中,有两种方式实现:

  1. 类适配
  2. 对象适配

类适配,需要用到多重继承,实际上也就是同时继承现有类和想要兼容的类

 

对象适配则比较简单,只是让现有类或接口实现适配器的接口

 

最后,重述下:我们谈论的设计模式,实际上是谈论设计的意图,而非具体的形式,具体的形式中难免会有所平衡,并且也可以解释为另一种设计模式(如若不追究其设计意图,而只看实现方式的话)

 

最近所做的随记也都是记录设计模式的神,而非其形

 

共勉

适配器模式