【发布时间】:2014-04-20 22:38:29
【问题描述】:
我刚刚对设计模式进行了更新,并试图将我遇到的现实世界示例映射到设计模式 例如:代理模式 -> WCF
通过中介者模式,企业服务总线浮现在脑海中,因此出现了问题。
【问题讨论】:
标签: design-patterns esb mediator
我刚刚对设计模式进行了更新,并试图将我遇到的现实世界示例映射到设计模式 例如:代理模式 -> WCF
通过中介者模式,企业服务总线浮现在脑海中,因此出现了问题。
【问题讨论】:
标签: design-patterns esb mediator
在中介者模式中,"communication between objects is encapsulated with a mediator object." 的目标是通过将通信路由细节留在中介者中来实现更高的类内聚。对象直接耦合到中介,并且彼此松散耦合。
对我来说,它似乎比 GoF 调解器更抽象,后者的示例往往与特定应用程序相关。例如,用户界面行为可能指定当用户单击列表中的项目时,应将单击的项目复制到文本框中。这种行为逻辑是非常特定于应用程序的,但是如果它分布在协作类之间(例如,项目列表和文本框各自管理控件的某些部分),则很难维护该逻辑。扩展该逻辑会使协作对象的凝聚力降低。 GoF 调解器集中了这个应用程序逻辑,所以项目列表不知道文本框等。
我将 ESB 视为提供路由服务,并且针对特定应用程序的行为对其进行自定义可能并不容易。例如,实体之间仍然需要相互了解才能进行通信,但细节已被抽象出来。行为在规则中定义。我可以将 ESB 视为一个通用的中介,但提供通用性的抽象可能使其比给定应用程序的 GoF 中介更难理解(最终凝聚力更差)。
ESB 更像是一种架构模式(通用服务),而中介者可以是一种非常特定于应用程序的模式。
【讨论】: