模式远程外观和分离接口

问题描述 投票:0回答:1

我正在为考试学习设计模式,但我遇到了一个问题:

结合分离接口和远程外观模式。

我们使用的教科书是 Martin Fowler 的《企业应用程序架构模式》(PEAA)[1]。您是否有任何具体示例来说明如何将这些模式组合到实际系统中?

如果有任何关于 PEAA 书籍 [1] 中具体示例的建议或参考,可以帮助我更好地理解这种组合,我将不胜感激。

ChatGPT 给了我这个答案,但我不确定你的想法,它不太让我信服:

  • 订单管理系统:Web客户端需要将订单发送到订单管理系统。后台系统比较复杂,有不同的库存、支付管理、数据库模块。
  • 应用:
  • Separated Interface 定义了一个远程接口,其中包含 createOrder、getOrder 和 cancelOrder 等操作。
  • Remote Facade 实现此接口,接收来自 Web 客户端的请求并将其委托给后端模块。
  • Web客户端只需要知道远程接口,无需直接与复杂的后端交互。

考试限制为:

  • 不要用书上说的来回答。
  • 理解回应时的意图。

根据我的教授的说法,远程外观并不一定意味着与服务器的网络通信,因为调用其他进程的进程,即使在同一台机器上,仍然符合资格。

design-patterns
1个回答
0
投票

您认为您了解远程外观和分离接口模式的全部含义吗?

远程外观旨在让交互变得不那么“喋喋不休”——假设:

  • 在设计时,组件之间进行大量细粒度调用会使它们更加紧密耦合,这通常是应该避免的。
  • 在运行时,每个调用都会在整个处理过程中引入某种延迟。

分离接口基本上是通过使用代码级接口(认为“契约”)来实现松耦合,而不是针对具体的类或组件(如 PEAA 书中所示的

Customer
Order
)。 许多设计模式和架构风格都大量使用这个想法 - 搜索“依赖注入”和“控制反转”,您就会发现它有多普遍。 “干净”建筑师是使用此概念的几种建筑风格之一。

问题的重点可能是确保您理解内聚与耦合背后的想法;为什么通常最好避免紧耦合;并思考类和组件如何交互——无论是在设计时(影响可维护性等质量)还是运行时(如性能等质量)。 因为这两种模式(以及它们背后的想法)对于良好的软件设计和架构来说都是相当核心的。

© www.soinside.com 2019 - 2024. All rights reserved.