本系列所有文章来自李建忠老师的设计模式笔记,系列如下:
设计模式(一)面向对象设计原则
23种设计模式(二)组件协作之模板方法
23种设计模式(三)组件协作之策略模式
23种设计模式(四)组件协作之观察者模式
23种设计模式(五)单一职责之装饰模式
23种设计模式(六)单一职责之桥模式
23种设计模式(七)对象创建之工厂方法
23种设计模式(八)对象创建之抽象工厂
23种设计模式(九)对象创建之原型模式
23种设计模式(十)对象创建之构建器
23种设计模式(十一)对象性能之单件模式
23种设计模式(十二)对象性能之享元模式
23种设计模式(十三)接口隔离之门面模式
23种设计模式(十四)接口隔离之代理模式
23种设计模式(十五)接口隔离之适配器
23种设计模式(十六)接口隔离之中介者
23种设计模式(十七)状态变化之状态模式
23种设计模式(十八)状态变化之备忘录
23种设计模式(十九)数据结构之组合模式
23种设计模式(二十)数据结构之迭代器
23种设计模式(二十一)数据结构之职责链
23种设计模式(二十二)行为变化之命令模式
23种设计模式(二十三)行为变化之访问器
23种设计模式(二十四)领域规则之解析器

文章目录

  • 动机
  • 模式定义
  • 要点总结

动机

  在软件构建过程中,经常会出现多个对象互相关联互交的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断地变化。

模式定义

  用一个中介对象来封装(封装变化)一系列的对象交互。中介者使各对象不需要显式的相互引用(编译时依赖-> 运行时依赖),从而使其耦合松散(管理变化),而且可以独立地改变他们之间的交互。

要点总结

  将多个对象间复杂的关联关系解耦,Mediator模式将多个对象间的控制逻辑进行集中管理,变”多个对象互相关联“为”多个对象和一个中介者关联“,简化了系统的维护,抵御了可能的变化。

  随着控制逻辑的复杂化,Mediator具体对象的实现可能相当复杂。这时候可以对Mediator对象进行分解处理。

  Facade模式是解耦系统间(单向)的对象关联关系;Mediator模式是解耦系统内各个对象之间(双向)的关联关系。

23种设计模式(十六)接口隔离之中介者相关推荐

  1. 23种设计模式(六)——装饰模式【单一职责】

    文章目录 意图 什么时候使用装饰 真实世界类比 装饰模式的实现 装饰模式的优缺点 亦称: 装饰者模式.装饰器模式.Wrapper.Decorator 意图 装饰者模式(Decorator Patter ...

  2. 23种设计模式(十四)模板方法模式(阁瑞钛伦特软件-九耶实训)

    常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...

  3. 110.【十万字带你深入学习23种设计模式】

    Java 23种设计模式 (一).设计模式相关内容介绍 1.软件设计模式概述 (1).软件设计模式的产生背景 (2).软件设计模式的概念 (3).学习设计模式的重要性 (4).设计模式分类 2.UML ...

  4. 23种设计模式(二十二)状态模式(阁瑞钛伦特软件-九耶实训)

    常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...

  5. 面试要点之——23种设计模式及其应用场景

    设计模式主要分三个类型:创建型.结构型和行为型.  其中创建型有:      一.Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 :     应用场景:一个无状态的 ...

  6. JAVA六大设计原则 和 23种设计模式

    相关书籍:<大话设计模式>.<Java设计模式>.<设计模式之禅>.<研磨设计模式>.<Head First 设计模式> JAVA六大设计原 ...

  7. JAVA设计模式总结之23种设计模式(重点!!!)

    JAVA设计模式总结之23种设计模式: 一.什么是设计模式 设计模式遵循的原则有6个: 二.设计模式的三个分类 三.各分类中模式的关键点 四.概说23种设计模式 1.单例模式(Singleton) 2 ...

  8. 李建忠讲23种设计模式笔记-上

    前两天在B站看了李建忠老师讲23种设计模式的系列视频,收获颇丰.设计模式是前人的智慧和经验的总结,需要我们反复地学习.在实践中体会其蕴含的设计原则和设计思想.李老师按照封装变化将23种设计模式分成组件 ...

  9. 【每天一个java设计模式(完)】 - 四万字实现23种设计模式(附示例源码)

    什么是设计模式:[每天一个java设计模式(零)] - 设计模式基本概念及七大设计原则 创建型模式 工厂模式:[每天一个java设计模式(一)] - 工厂模式 抽象工厂模式: [每天一个java设计模 ...

  10. 23种设计模式-完结!

    23种设计模式(Java版本) 总述 ​ 在大四的时候开始了作为一个码农的实习阶段,在进入公司之前,我只知道一些简单的工厂模式--比如简单工厂(对应还有"复杂"工厂).单例模式.代 ...

最新文章

  1. 【Android笔记】Activity的四种启动模式
  2. Visual Studio常用快捷键(非常实用)
  3. python wordpress xmlrpc 调用_20542通过wordpress_xmlrpc的python包远程操作wordpress 编辑 更新Post...
  4. BZOJ3675[APIO2014] 序列分割
  5. 【AI视野·今日CV 计算机视觉论文速览 第224期】Tue, 22 Jun 2021
  6. 计算机网卡大小怎么查看,查看电脑网卡是100M还是1000M的方法
  7. 数据可视化—绘制简单的折线图
  8. splash : mouse_click()方法
  9. mysql并发ppt_高并发下MySQL数据库的优化.ppt
  10. 个人网站博客完美添加谷歌广告增加收入详细步骤
  11. C# Excel 操作
  12. 飞利浦e570有JAVA吗_功能机怎么了?飞利浦E570的待机长达170天
  13. python爬取天眼查数据(未破解图片验证及ajax版)
  14. java roll_Java Calendar roll()用法及代碼示例
  15. 主动学习(active learning)
  16. 商业分析能力是怎样炼成的?
  17. 关于Rosetta的那些事
  18. Cadence 如何通过.dra(封装)查看使用哪个.pad(焊盘)文件
  19. 流行的 DAW编曲软件FL Studio 21 有什么新功能?
  20. 简阅人体姿态估计深度学习方法-simpread-Human Pose Estimation Deep Learning Approach

热门文章

  1. java程序的运行方式
  2. Jmeter参数化HTTP request中Send Files With The Request的文件路径和文件名
  3. H3C ospf与nat转换
  4. 游戏筑基开发之指针的练习掌握
  5. NP、OSPF 缺省路由
  6. 2018上海大学生网络安全赛 misc 92 wp
  7. 从个人经历出发,说说如何0基础学Java
  8. Comparable与Comparator
  9. Salesforce新增Einstein AI支撑的自动化功能
  10. web服务器mysql日志分析