首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >远程外观模式与外观模式

远程外观模式与外观模式
EN

Stack Overflow用户
提问于 2013-12-11 18:44:14
回答 1查看 5.6K关注 0票数 2

除了Remote Facade pattern的接口更粗粒度和客户端调用该接口是远程的而不是本地的之外,这两种模式之间还有其他区别吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-11 21:53:12

您指的是像Java这样的Remote接口吗?我不认为这是一个facade,但实际上是一个proxy模式实现。

远程将所有调用(通过代理模式隐藏于用户)转发到另一台计算机。这隐藏了这样一个事实,即工作不是在本地完成的。

Facade模式通常将复杂的接口简化为更简单的版本(就像用几个最常用的按钮替换复杂的控制面板一样)。如果您确实需要更复杂的版本,仍然可以使用旧的更复杂的控件。

编辑在指出您指的是Marin的Remote Facade之后,我将进一步解释:

福勒的Remote Facade不仅仅是Remote + Facade模式。还有一个额外的理由背后的简化,外观使用。

而不是简单地简化复杂的方法或从外观中移除使用过的方法。RemoteFacade显式地结合了“非外观”接口中的几种常用方法,以减少延迟和网络流量。

由于Remote调用将在网络上进行(使用Java等),因此需要将方法调用转换为通过网络传递的消息。消息需要时间才能穿越网络,得到一条消息并解封响应等等。此外,还可能会有安全层检查和拦截通信量。所有这些都增加了调用远程方法的时间和精力。

RemoteFacade将几种常见的方法组合成一个网络消息。因此,使用福勒书中的例子,如果您有一个与setCity()、setZipcode()、setStreet()分别设置地址的接口。这将是3个远程呼叫,通过网络。相反,RemoteFacade将其转化为1种方法setAddress(street、city、zip),它只需要传递1条网络消息,因此调用时间应该更短。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20527419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档