【问题标题】:Is an ESB an example of the Mediator pattern?ESB 是中介者模式的一个例子吗?
【发布时间】:2014-04-20 22:38:29
【问题描述】:

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

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

【问题讨论】:

    标签: design-patterns esb mediator


    【解决方案1】:

    在中介者模式中,"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 调解器更抽象,后者的示例往往与特定应用程序相关。例如,用户界面行为可能指定当用户单击列表中的项目时,应将单击的项目复制到文本框中。这种行为逻辑是非常特定于应用程序的,但是如果它分布在协作类之间(例如,项目列表和文本框各自管理控件的某些部分),则很难维护该逻辑。扩展该逻辑会使协作对象的凝聚力降低。 GoF 调解器集中了这个应用程序逻辑,所以项目列表不知道文本框等。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 2021-08-18
      相关资源
      最近更新 更多