[OOD] 适配器模式

简介: 背景世界上电源插头标准很多, 这里只说国标和英标:中国标准:英国标准:各地插头标准不同带来的另一个问题是各地的标准插座主要针对当地插头设计。 常在世界各地跑的朋友都知道一定要配个转接头, 比如这个:这个转换头名称是World Travel Adapter, 所起的作用就是适配。

背景

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



英国标准:



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



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


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



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


2. 组合模式

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


讨论

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


目录
相关文章
|
7月前
|
存储 测试技术
了解面向对象设计和方法
【6月更文挑战第26天】本文介绍面向对象编程(OOP)强调通过对象来模拟现实世界,以数据和行为的结合体形式存在。核心概念是封装、继承和多态,关系包括依赖、实现、关联、聚合和组合。组合是强于聚合的关联,当部分与整体有相同生命周期时适用。OOP允许创建复杂系统模型,如汽车的组件,提供不同层次的抽象。
91 1
了解面向对象设计和方法
|
存储 Java
Java面向对象的特征一:封装性
Java面向对象的特征一:封装性
85 0
|
8月前
|
设计模式 Java 数据库
小谈设计模式(18)—适配器模式
小谈设计模式(18)—适配器模式
|
8月前
|
设计模式 Java 数据格式
深入了解适配器模式-优雅地解决接口不匹配问题
适配器模式是一种常用的设计模式,它通过将一个类的接口转换成客户端所期望的另一个接口,使得原本由于接口不兼容或不匹配而无法协同工作的类能够一起工作。适配器模式主要应用于解决不同组件之间的接口不兼容问题,或者在第三方库与现有系统之间进行集成。通过使用适配器模式,可以提高代码的灵活性和复用性,降低系统间的耦合度。适配器模式有多种实现方式,包括类适配器模式、对象适配器模式和接口适配器模式。在使用适配器模式
120 0
|
Java
Java面向对象 特征三(多态性)详解
Java面向对象 特征三(多态性)详解
86 0
|
Java
面向对象特征三:多态性
面向对象特征三:多态性
70 0
|
编译器 C++
C++面向对象设计一个类需要注意的事情
C++代码千千万万,好的代码风格会让我们代码编写变得简洁高效,还会避免很多bug的出现,本期将讨论一个好的代码风格应该是怎样的。
|
存储 Java 开发者
Java面向对象编程三大特征 - 多态
Java面向对象编程三大特征 - 多态
112 0
|
Java 数据安全/隐私保护
Java面向对象编程三大特征 - 继承
Java面向对象编程三大特征 - 继承
69 0
|
设计模式 Java
【Java设计模式 设计模式与范式】结构型模式 一:适配器模式
【Java设计模式 设计模式与范式】结构型模式 一:适配器模式
68 0

热门文章

最新文章

下一篇
开通oss服务