公用技术——设计模式23——行为型模式——中介者模式

1、概念

  中介者模式是解耦不同对象之间的交互,提供统一的中介者来负责对象之间的交互。

  它的核心思想是”统一,整合,集中”。

  在不同场景下,这些思想的术语有可能会发生改变。以下举几个示例说明。

  铁路运输系统中,总指挥部代表的就是这里的中介者,每个单独的火车,高铁代表的就是不同的对象,当遇到各种情况下,首先由总指挥部统一协调,统一部署,统一安排。在这种情况下,必须存在”中介者”,否则会导致混乱,甚至整个系统都会瘫痪。

  电商平台中,平台代表的就是中介者,每个顾客,每个店主代表的就是不同的对象,顾客的任何行为都是通过平台反馈到店主的,当购买物品时,店主会收到顾客的订单信息,咨询,退换货,售后等等。在这种情况下,”中介者”不是必须存在的,平台起到的作用就是整合资源,提供物品的多样性。

  这样的示例随处可见,但它也存在很多缺点。

  例如SVN与Git的服务器模型,SVN是集中式的方式,而Git是分布式的方式,集中式导致服务器的负载加重,服务器奔溃之后的诸多问题等等。

  Linux/Unix系统中的管道命令,一个命令的输出结果直接作为其他命令的输入参数,很大程度的提高性能。IO也是同样的道理。

  使用中介者模式时,需要结合实际的需求场景。到底需不需要中介者模式很难有定论。

2、UML图

3、代码

  无固定的模式,略。

4、讨论

  Object与OtherObject无法用现有的关系去描述,例如铁路系统中Object与OtherObject代表的是通讯员,它们在一个整体的系统结构中,或是在一个生态中(个人理解)。

  在上述中多次提到的交互概念,它有很多的含义,可以是发送一条信息,可以是发送一次请求,可以是某一项具体的操作。

  中介者的概念,它也有很多含义,它可以是一个具体的对象,也可以是服务器,也可以是某个部分,也可以是某个具体的人,但是它们的功能大部分是相同的。”统一,整合,集中”。

5、示例

  上述已介绍很多示例,不再赘余。

原文地址:https://www.cnblogs.com/rain144576/p/9940843.html