发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA
1 2 3 下一页 Go 3

adapter模式读书笔记,请多多指教

    
2003-03-21 18:19
赞助商链接

在使用一个类时,为了使这个类具有更好的复用性,
不能在使用它时增加额外的条件。当客户类使用它
时,当接口不匹配时,如果采用非面向对象的方法
,用硬代码调用这个类,势必会出现大量的重复代
码,出现重复代码的时候就是使用设计模式的时候。
这是可以用一个专门的类来封装这个匹配的过程。
这就是adapter,adapter有两种形式:类适配器
和对象适配器。用类适配器的好处是避免额外的
对象引用,并且可以重新定义被适配类的内容。
对象适配器的好处是可以为被适配类和它所有的
子类提供适配。

2003-03-23 12:59

adapter模式是扩展时用。

你说的“当客户类使用它时,接口不匹配,。。用硬代码调用这个类,势必产生大量重复代码”,我不是很明白,我的理解是,当接口不匹配时,一般我们要么修改原来的类或者修改现在的类,使它们接口来匹配,但是这种修改原来类的办法不是好办法,我们要把原来的类当做“黑匣子”,尽量不去动它,保证复杂系统的稳定性,这是就只能通过adapter增加一个类,来做转换,就象110/220的变压转换器一样。

这个模式告诉我们,不要随意去修改原来代码,不要自以为很聪明,我个人感觉这是很多年轻程序员最喜欢范的毛病。

2003-03-23 14:52

所谓的OCP原则,呵呵

2003-03-24 15:00

adapter 模式在网络里的应用是 gateway(网关),在现实生活中的应用就是 translator/interpretor(翻译)。

2003-03-24 15:09

这里的贴子发完了不能编辑,只好再回复一次了

关于 adapter 还有以下优点。

如果你需要做比如图象类型转换,要把 bmp, gif, png, jpg, tif, ... 等很多格式能够相互转化,一个一个写,你就需要很多个转换方法:

bmp->gif
bmp->png
bmp->jpg
bmp->tif
gif->bmp
gif->png
gif->jpg
gif->tif
png->bmp
png->gif
png->jpg
png->tif
... ...

而用 adapter 就方便多了,只需要

bmp->adapter
gif->adapter
png->adapter
jpg->adapter
tif->adapter
以及
adapter->bmp
adapter->gif
adapter->png
adapter->jpg
adapter->tif

工作量少的多了。

3Go 1 2 3 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com