[设计模式笔记]二. 结构型模式--7.Adapter模式(适配器模式)(一)

结构型模式 Adapter模式(适配器模式)


一. 意图


将一个类的接口转换成客户希望的另外一个接口. Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作


二. 适用性


2.1 你想使用一个已经存在的类,而它的接口不符合你的需求。.

2.2 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作.

2.3 (仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口.


三. 模式结构


有两种实现方式分别是通过多重继承和对象组合的方式.



图1 多重继承实现方式



图2 对象组合方式实现


四. 角色说明


Target: 定义Client使用的与特定领域相关的接口.

Adaptee: 一个已经存在和实现的接口这个接口需要适配.

Adapter: Adaptee的接口与Target接口进行适配


五. 使用


Client只调用Target接口为了能使用上Adaptee上的功能AdapteeTarget之间增加一个适配Adapter来满足Target接口的调用.


我的理解


6.1 该模式也很好理解就是Client只使用Request接口现在增加需求Adaptee可以满足这种需求实现但是接口并不满足Client的调用故增加一个中间层Adapter(就好像一个连接器一样或者叫转换器或者叫适配器).

6.2 Adapter中的Request实现调用了Adaptee中的方法怎样使得Adapter可以调用Adaptee中的方法使用继承或者组合的方式即可.

6.3 使用C++实现适配器类在使用C++实现适配器类时, Adapter类应该采用公共方式继承Target并且用私有方式继承Adaptee类.


相关模式


7.1 Bridge模式的结构与对象适配器类似但是Bridge模式的出发点不同:Bridge目的是将接口部分和实现部分分离从而对它们可以较为容易也相对独立的加以改变Adapter则意味着改变一个已有对象的接口.

7.2 Decorator模式增强了其他对象的功能而同时又不改变它的接口因此decorator对应用程序的透明性比适配器要好。结果是decorator支持递归组合而纯粹使用适配器是不可能实现这一点的。

7.3 Proxy模式在不改变它的接口的条件下为另一个对象定义了一个代理.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值