设计模式(十八)中介者模式

一 . 模式动机

  • 中介者模式是为了解决系统结构复杂(对象之间存在大量的相互关联和调用),对象可重用性差,系统扩展性低。

二 . 模式定义

  • 用一个中介对想来封装一系列对象交互,中介者适用各对象不需要显示的相互引用,从而使其松耦合,并且可以独立的改变他们之间的交互。是一种对象行为模式。

三 . 模式结构

设计模式(十八)中介者模式
(图片来源于网络)

  • Mediator:抽象中介者
  • ConcreteMediator:具体中介者
  • Colleague:抽象同事类
  • ConcreteCollege:具体同事类

四 . 模式实列

  • 老师管理一个班的学生并不会把所有学生的qq都加一边,而是建立一个qq群。(这里代码省略)

五 . 模式分析

设计模式(十八)中介者模式

  • 中介者类中要有对所有同事类的引用

六 . 模式优缺点

  • 优点
    • 简化对象的交互
    • 将各个同时类解耦合
  • 缺点
    • 在具体中介者类中包含了同时之间的交互细节,可能导致具体中介类非常复杂,使系统难以维护

七 . 适用场景和应用

  • 系统对象之间存在复杂的引用关系。

八 . 模式扩展

  • 中介者模式与迪米特法则
    • 在中介者模式中,通过创造出一个中介者对象,将系统中有关对象所引用其他对象减到最少
  • 中介者模式与GUI开发
    有关对象所引用其他对象减到最少