码迷,mamicode.com
首页 > 其他好文 > 详细

[OOD] 适配器模式

时间:2015-04-21 00:25:39      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:设计模式   适配器   adapter pattern   

背景

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


英国标准:
技术分享


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


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


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


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


2. 组合模式
技术分享
这时Adapter::CreateDB()实现就是adaptee_->Open();


讨论

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


[OOD] 适配器模式

标签:设计模式   适配器   adapter pattern   

原文地址:http://blog.csdn.net/horkychen/article/details/45158187

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!