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

概述

  1. 当用户对象之间存在很强的关联性时,会有以下问题:
  2. 系统结构负责
    1. 对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他所有对象,并进行适当处理。
  3. 对象的可重用性差
    1. 由于一个对象和其他对象具有很强的关联,若没有其他对象的支持,一个对象很难被另一个系统或模块重用,这些对象表现出来更像一个不可分割的整体,职责较为混乱。
  4. 系统扩展性低
    1. 增加一个新的对象需要在原有相关对象上增加引用,增加新的引用关系也需要调整原有对象,系统耦合度很高,对象操作很不灵活,扩展性差。
  5. 对于一个模块,可能由很多对象构成,而且这些对象之间可能存在相互的引用,为了减少对象两两之间复杂的引用关系,使之成为一个松耦合的系统,选择用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

定义

角色

  1. Mediator: 抽象中介者
  2. ConcreteMediator: 具体中介者
  3. Colleague: 抽象同事类
  4. ConcreteColleague: 具体同事类

场景

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

实现

实现-智能指针

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

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2025-05-05
Everything will be better.

发表评论

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