博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之Adapter模式(适配器)
阅读量:5345 次
发布时间:2019-06-15

本文共 977 字,大约阅读时间需要 3 分钟。

1。引言
一个螺丝和一个螺丝母,本质上没有什么区别,一个插座和一个插线板,一个水龙头和水管,一个饮水机和一个水桶,锁和钥匙,这些成对事物的事物本来没有什么本质联系,在面向对象的角度来说也不存在多的共性,但是又经常成对使用。
如何让这些不兼容的类在一起和谐的工作呢,就需要使用结构性设计模式中的适配模式
2.定义与结构图
 
将一个类的接口转换成客户希望的另外一个接口。
Adapter
模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
 结构图:
 
3)如何实现
实现适配器模式有两种方式,第一种是组合(Composition),第二种是继承(Inheritance),一般情况下组合比继承更加灵活,另外还有个 Pluggable Adapters ,支持插件的适配模式。这种方式主要利用反射来完成对公有成员的访问。
4)  适配器模式在.net的应用
最大应用为
COM Interop
,Com Interop是com与.net之间的一个桥梁,通过它就可以透明的访问com对象和.net对象,而忽视二者在设计结构上的区别 。
还有DataAdapter,这个我们经常使用,它将Connection,Command,DataSet对象组织起来,形成访问数据的一个强大工具类。起到了数据库与DataSet之间纽带与桥梁的作用 

实现要点(以下引用出在 blog )

1.Adapter模式主要应用于“希望复用一些现存的类,但是接口又与复用环境要求不一致的情况”,在遗留代码复用、类库迁移等方面非常有用。

2.Adapter模式有对象适配器和类适配器两种形式的实现结构,但是类适配器采用“多继承”的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用“对象组合”的方式,更符合松耦合精神。

3.Adapter模式的实现可以非常的灵活,不必拘泥于GOF23中定义的两种结构。例如,完全可以将Adapter模式中的“现存对象”作为新的接口方法参数,来达到适配的目的。

4.Adapter模式本身要求我们尽可能地使用“面向接口的编程”风格,这样才能在后期很方便的适配。[以上几点引用自MSDN WebCast]

转载于:https://www.cnblogs.com/jillzhang/archive/2006/09/07/497552.html

你可能感兴趣的文章
《演说之禅》I & II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
response和request
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>
回到顶部浮窗设计
查看>>
C#中Monitor和Lock以及区别
查看>>
【NOIP2017】奶酪
查看>>
$ 一步一步学Matlab(3)——Matlab中的数据类型
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>
常用web字体的使用指南
查看>>
描绘应用程序级的信息
查看>>
poj2406-Power Strings
查看>>
2018/12/18 JS会像Linux一样改变编程
查看>>
php环境搭建脚本
查看>>
FTP主动模式与被动模式说明
查看>>
php 编译常见错误
查看>>
MES架构
查看>>
【Python3 爬虫】15_Fiddler抓包分析
查看>>
高性能JavaScript-JS脚本加载与执行对性能的影响
查看>>