zoukankan      html  css  js  c++  java
  • 公用技术——设计模式23——行为型模式——中介者模式

    1、概念

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

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

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

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

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

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

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

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

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

    2、UML图

    3、代码

      无固定的模式,略。

    4、讨论

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

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

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

    5、示例

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

  • 相关阅读:
    团队项目-项目进度
    团队项目-Recycle项目文档
    团队项目-Recycle需求规格说明书
    团队项目-初步构想
    关于 Localhost:8080/hello
    Java EE课程作业 (Seventh)-- Async
    Java EE 课程作业 (Sixth)-- Filter分析
    Java EE 课程作业(Fifth)-- XML:定义 用途 工作原理及未来xml
    Java EE 课程作业(Fourth)-- Session
    Java EE 课程作业(third)- 关于 Java EE的思维导图
  • 原文地址:https://www.cnblogs.com/rain144576/p/9940843.html
Copyright © 2011-2022 走看看