• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2020-09-13 04:32 Aet 隐藏边栏 |   抢沙发  2 
文章评分 2 次,平均分 5.0

概述

当用户对象之间存在很强的关联性时,会有以下问题:

系统结构负责

对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他所有对象,并进行适当处理。

对象的可重用性差

由于一个对象和其他对象具有很强的关联,若没有其他对象的支持,一个对象很难被另一个系统或模块重用,这些对象表现出来更像一个不可分割的整体,职责较为混乱。

系统扩展性低

增加一个新的对象需要在原有相关对象上增加引用,增加新的引用关系也需要调整原有对象,系统耦合度很高,对象操作很不灵活,扩展性差。

对于一个模块,可能由很多对象构成,而且这些对象之间可能存在相互的引用,为了减少对象两两之间复杂的引用关系,使之成为一个松耦合的系统,选择用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

定义

角色

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

场景

  • 一组对象以一种定义明确但是很复杂的方式通信或交互
  • 对象重用很困难,因为这个对象不仅引用了大量对象,还和大量对象通信或交互
  • 多个类之间分布的行为应可以自定义,而无须大量子类化

实现

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2021-11-20
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享