design-patterns - ESB 是中介者模式的一个例子吗?

标签 design-patterns esb mediator

我刚刚对设计模式进行了更新,并试图将我遇到的真实世界示例映射到设计模式 例如:代理模式 -> WCF

通过中介者模式,企业服务总线浮现在脑海中,因此出现了这个问题。

最佳答案

在中介者模式中,"communication between objects is encapsulated with a mediator object."目标是通过将通信路由细节留在中介中来实现类中更高的凝聚力。对象直接耦合到中介,彼此松散耦合。

在企业服务总线架构中,"all customer services communicate in the same way with the ESB: the ESB translates a message to the correct message type and sends the message to the correct producer service."

对我来说,它似乎比 GoF Mediator 更抽象,其示例往往与特定应用程序相关。例如,用户界面行为可能指定当用户单击列表中的项目时,应将单击的项目复制到文本框中。这种行为逻辑非常特定于应用程序,但如果它散布在协作类之间(例如,项目列表和文本框各自管理控件的某些部分),则很难维护该逻辑。分散该逻辑会使协作对象的凝聚力降低。 GoF Mediator 集中了这个应用程序逻辑,因此 Item List 不知道文本框等。

我将 ESB 视为提供路由服务,针对特定应用程序的行为对其进行自定义可能并不那么容易。例如,实体仍然需要了解彼此以进行通信,但细节已被抽象。行为在规则中定义。我可以将 ESB 视为通用中介,但提供通用性的抽象可能会使其比给定应用程序的 GoF 中介更难理解(最终缺乏凝聚力)。

ESB 更像是一种架构模式(通用服务),而中介者可以是一种非常特定于应用程序的模式。

关于design-patterns - ESB 是中介者模式的一个例子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22425314/

相关文章:

WSO2 启动时卡住

javascript - JavaScript 中的 Modules + Fascade + Mediator 组合

java - 一点java中的类设计,一点模式?

oop - 反if目的: How to check nulls?

java - 在Mule中使用Arraylist查询Salesforce

java - PHP 和 ESB(带 Mule)(ESB : Enterprise Service Bus)

asp.net-web-api - 调解器 Api 调用失败

design-patterns - 包装器、桥接器和中介器之间有什么区别?

java - 为什么要使用 Memento 模式,因为它可以更容易完成?

design-patterns - 创建 REST 服务 API 的初学者指南(包括 RESTful 身份验证)