好像是一回事:适配器和代理模式
1、适配器模式。
“适配器”,顾名思义,就是将一个类的接口转换成另外一个接口,使得原本由于接口不兼容不能一起工作的那些类一起工作。在软件开发中,系统的数据和行为都正确,但接口不符时,我们应该考虑适配器。举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),假如现在到了大学后,英语老师要我们学英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书(注意这里的英文书是实实在在存在了的),所不变的就是继续听“子曾经曰过”什么什么了。好了,Code is cheap.让代码说话:
Code适配器模式的使用通常都在软件开发后期或者维护阶段,因为没有哪个开发团队在开发初期愿意把类似的功能类的接口设计的不同,通常都是会先考虑通过重构统一接口。所以这个模式在开发初期应尽量避免使用。
2、代理模式。
代理就是真实对象的代表。”代理模式“为其他对象提供一种代理以控制对这个对象的访问。代理模式其实就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。
举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),现在到了大学后,我们求知欲望强烈^_^,很想学习英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书,可是国内没有质量过关的英文版《论语》(或者不权威,我们自己也可以翻译出来^_^)。这时候国外有汉学专家翻译了《论语》,可是版权控制的很严格,我们直接买不到,这个时候有一个出版社被授权在国内出版这本书,这样我们就可以看到原滋原味的外国人翻的《论语》了。现在就来看看英文的“子曾经曰过”什么什么了。上代码:
Code上面代码中的Proxy和本例中(现实中)的出版社的用途还是有很大的区别的,这里只是举个例子,不妥之处望留意。
“适配器”,顾名思义,就是将一个类的接口转换成另外一个接口,使得原本由于接口不兼容不能一起工作的那些类一起工作。在软件开发中,系统的数据和行为都正确,但接口不符时,我们应该考虑适配器。举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),假如现在到了大学后,英语老师要我们学英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书(注意这里的英文书是实实在在存在了的),所不变的就是继续听“子曾经曰过”什么什么了。好了,Code is cheap.让代码说话:

2、代理模式。
代理就是真实对象的代表。”代理模式“为其他对象提供一种代理以控制对这个对象的访问。代理模式其实就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。
举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),现在到了大学后,我们求知欲望强烈^_^,很想学习英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书,可是国内没有质量过关的英文版《论语》(或者不权威,我们自己也可以翻译出来^_^)。这时候国外有汉学专家翻译了《论语》,可是版权控制的很严格,我们直接买不到,这个时候有一个出版社被授权在国内出版这本书,这样我们就可以看到原滋原味的外国人翻的《论语》了。现在就来看看英文的“子曾经曰过”什么什么了。上代码:

作者:Jeff Wong
出处:http://jeffwongishandsome.cnblogs.com/
本文版权归作者和博客园共有,欢迎围观转载。转载时请您务必在文章明显位置给出原文链接,谢谢您的合作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构