odi*_*seh 5 .net design-patterns adapter proxy-pattern
似乎Proxy和Adapter模式之间有相似之处?
任何人都可以解释一下有什么区别吗?为什么我们要求他们两个?在哪些问题中我们应该只使用代理而不是另一个.net示例?
谢谢
sto*_*eur 16
代理公开与其隐藏的对象完全相同的行为.代理通常用于联系远程对象,而不必知道如何联系它.一个例子是WCF服务,你可以封装在代理中访问服务,该代理公开与wcf服务完全相同的接口,但是隐藏了实现细节,比如使用channelfactory和处理faultexceptions等......这就像你客户端正在谈论本地到WCF服务.
适配器还隐藏了底层对象,但它将您与之交换的数据转换为正确的格式和底层对象使用的内容.一个例子确实是遗留系统,就像Goblin说的那样.您将与遗留系统交谈的复杂性(可能是使用chatty或CRUDy API,并且您希望将其隐藏在粗粒度操作之后)封装到适配器中,以便为您的客户提供与遗留系统对话的简单方法.
这就是我至少理解它的方式.
编辑:顺便说一句,我个人觉得你不必将设计模式名称视为最终全部.根据您想要实现的目标选择正确的模式,并根据需要调用它.
代理通常用于以下场景:
适配器扮演另一个角色 - 它们弥合了两个没有关系的类之间的差距.适配器可以充当两个对象.这主要用于必须与遗留系统(或第三方框架)集成时无法更改API的情况.
希望这可以帮助!