适配器模式

软件设计模式
2021-05-17 14:29 · 阅读时长3分钟

适配器模式是一种结构型设计模式,适配器用于抽象出一个中间层做转换工作,使得两个原本不相关或不兼容的接口共同工作,主要用于兼容目前已存在的接口。

假设我们已经有一个搜索引擎类SearchEngine,它接收一个Request作为参数,Request有一个方法getEnglishBody,用于返回英文内容作为搜索关键字,定义如下。

加载中...

但是我们目前业务拿到的数据Query是中文的,其定义如下。

加载中...

在不考虑设计模式的情况下,我们会写一个方法将Query中的中文数据转化为英文数据,然后再构造一个Request对象传递给SearchEngine,这样没有问题,但是不够面向对象,下面看看更加面向对象的方式来对接两个不兼容接口,也就是适配器模式。

适配器模式有两种实现方式,对象适配器和类适配器,两者实现方式有一些差别,类适配器是通过实现或继承的方式持有被适配的对象,而对象适配器则是通过组合的方式持有被适配的对象。

对象适配器
加载中...
类适配器
加载中...

无论何种实现方式,RequestAdapter都可以作为参数传入SearchEngine了。

总结

适配器模式优点就是可以兼容两个不同的接口,提到代码的扩展性和复用性,比如说某功能已经有一个比较好的实现,但是它的入参和我们目前应用的数据不一致,我们可以写一个适配器将目前的数据转化为其要求的数据,从而达到复用的目的。

适配器模式adapter设计模式