5
A
回答
7
代理服务器通常用于以下情况:
- 底层的“真实”目的是建立昂贵。然后,您可以在创建代理时创建占位符(下载大图像时的进度条图标就是一个典型示例)。延迟加载是另一个典型的例子。我们的想法是,我们不知道用户是否会点击'详细信息'窗格 - 所以我们会推迟加载,直到他实际点击它或系统空闲。
- 您想要控制对代理内“真实”对象的部分或全部成员的访问(SecurityProxy)。
适配器扮演另一个角色 - 他们弥合了两个没有关系的类之间的差距。适配器可以充当两个对象。这主要用于当必须与遗留系统(或第三方框架)整合时,无法更改API。
希望这会有所帮助!
16
代理公开与它隐藏的对象完全相同的行为。代理通常用于联系远程对象,而不必知道如何联系它。一个例子是一个WCF服务,你可以将服务封装到一个代理中,该代理暴露与wcf服务完全相同的接口,但隐藏了实现细节,例如使用channelfactory和处理faultexceptions等等。这就像客户端在说话到本地的WCF服务。
适配器还隐藏了一个底层对象,但它将您交换的数据转换为底层对象使用的正确格式和内容。像Goblin说的,一个例子确实是一个遗留系统。您将与旧系统交谈的复杂性(可能使用健谈或CRUDy API,并且希望将其隐藏在粗粒度操作之后)复杂到适配器中,以向客户端提供与传统系统交谈的简单方法。
这就是我至少理解它的方式。
编辑:顺便说一下,我个人觉得你不必将设计模式名称看作是最终全做的。根据您想要达到的目标选择合适的模式,并根据需要调用它。
相关问题
- 1. 对象适配器模式和类适配器模式之间的区别
- 2. 适配器和代理模式之间的确切区别是什么?
- 3. 战略模式和适配器之间的区别
- 4. SNMP代理和SNMP适配器之间的区别是什么
- 5. MVVM和MVA(模型 - 视图 - 适配器)之间的区别
- 6. 怪癖模式和标准模式之间的区别JavaScript
- 7. 火花独立模式和本地模式之间的区别?
- 8. 特权模式,内核模式和超级用户模式之间的区别
- 9. 模式匹配和类型铸造之间的区别
- 10. 立面和业务代表模式之间的区别
- 11. 垫片和立面/适配器模式有什么区别?
- 12. C++:NVI和模板方法模式之间的区别?
- 13. 模板方法(分离)和策略模式之间的区别?
- 14. 存储库模式和视图模型模式之间的区别
- 15. 适配器模式
- 16. 适配器模式
- 17. 区域适配器和区域行为之间的区别?
- 18. 生产者/消费者模式和观察者模式之间的区别
- 19. 装饰器,包装器和适配器模式有什么区别?
- 20. ASP.NET中的SessionState中的“InProc”和“stateServer”模式之间的区别
- 21. 阿卡问和告诉模式之间的区别?
- 22. 样式和控件模板之间的区别
- 23. 使用TPL和异步模式之间的实际区别
- 24. ng模型和角度表达式之间的区别 - {{}}
- 25. 样式和控制模板之间的区别
- 26. C#XNA Visual Studio:“释放”和“调试”模式之间的区别?
- 27. PIG local和mapreduce模式之间的区别
- 28. GOF和GRASP设计模式之间的区别是什么
- 29. 享元设计模式和Java缓存之间的区别
- 30. r +和w +模式之间的确切区别是什么?