加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[OOD] 适配器模式

发布时间:2020-12-13 22:28:45 所属栏目:百科 来源:网络整理
导读:背景 世界上电源插头标准很多,这里只说国标和英标: 中国标准: 英国标准: 各地插头标准不同带来的另一个问题是各地的标准插座主要针对当地插头设计。 常在世界各地跑的朋友都知道一定要配个转接头,比如这个: 这个转换头名称是World Travel Adapter ,所起的作

背景

世界上电源插头标准很多,这里只说国标和英标:
中国标准:



英国标准:



各地插头标准不同带来的另一个问题是各地的标准插座主要针对当地插头设计。 常在世界各地跑的朋友都知道一定要配个转接头,比如这个:



这个转换头名称是World Travel Adapter,所起的作用就是适配。(严格来说,上面的转接头还应用了工作方法。)
*另一种形式是由插座提供适配,作用是一样的。


在软件领域里,我们也常常需要对接两种不同的接口。在设计上有两种模式可以参考。下面以文件操作适配到数据库操作的适配器为例。
1. 多重继承



这样在Adapter里CreateDB()的处理就是调用FileAPI::Open();


2. 组合模式

这时Adapter::CreateDB()实现就是adaptee_->Open();


讨论

适配器模式常常与桥接模式相比较,两者最大的不同在于解决的问题不同。适配器用于对接两个不同的接口,而桥接则主要为了隔离变化。从应用上来说,一个是被动的,一个是主动的。 所谓被动的,就是当前的接口的差异是无法轻易改变的,必须引入一个中间层来解决。而中间层的引入往往带有性能、以及不必要的数据拷贝等开销,详细参考关于层的反模式讨论。如果接口是可控,就要尽量避免接口不一致的情形。而不是等待使用Adapter来处理。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读