基于设计模式的学习之旅-----适配器模式(附源码)

      基于设计模式的学习之旅-----适配器模式

1、初始适配器模式

2什么是适配器模式

将一个类的接口转换成客户希望的另外一个接口。 A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

别名:包装器 Wr a p p e r

Adapter模式最关键的要求是:Adapter是对两个功能相近的接口间的适配

3、模式结构图

类适配器使用多重继承对一个接口与另一个接口进行匹配,如下图所示

 

对象匹配器依赖于对象组合,如下图所示

4模式代码事例

41涉及到的类,以及类图

TargetISpecialSwitchable

ClientPatternRun

AdapteeIStandardSwitchable

AdapterSwitcherAdapter

42具体的代码实现

ISpecialSwitchable

IStandardSwitchable

Light

SwitcherAdapter

PatternRun

43事例输出结果

5、模式参与者

TargetISpecialSwitchable

ClientPatternRun

AdapteeIStandardSwitchable

AdapterSwitcherAdapter

 

6、模式优缺点

A、用一个具体的A d a p t e r类对A d a p t e eTa rg e t进行匹配。

B、使得A d a p t e r可以重定义A d a p t e e的部分行为,因为A d a p t e rA d a p t e e的一个子类。

C、仅仅引入了一个对象,并不需要额外的指针以间接得到 a d a p t e e

7模式适用性

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

 

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

 

C(仅适用于对象A d a p t e r)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。

 

点击下载“文档以及源码下载

欢迎转载,请注明出处“http://www.cnblogs.com/luxiaofeng54/archive/2013/04/05/3000371.html

 

posted on   陆晓峰  阅读(638)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?

导航

< 2013年4月 >
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 1 2 3 4
5 6 7 8 9 10 11
点击右上角即可分享
微信分享提示