23种设计模式(十四)——中介者模式【接口隔离】

news/2024/10/18 21:08:11/

文章目录

    • 意图
    • 什么时候使用中介者
        • 真实世界类比
    • 中介者模式的实现
    • 中介者模式的优缺点

亦称:调解人、控制器、Intermediary、Controller、Mediator

意图

用一个中介者对象来封装一系列的对象交互。使得各对象不需要显式地相互引用,从而使其松散耦合,而且可以独立地改变它们之间的交互。

在这里插入图片描述

什么时候使用中介者

1、系统结构复杂:对象之间存在大量的相互关联和调用,例如上面的网状结构,如果依赖性强,则当某个对象需要进行变更时,会影响到很多其他对象

2、对象可重用性差:由于一个对象和其他对象具有很强的关联,若没有其他对象的支持,对象很难被重用,依赖关系越多,重用越困难

真实世界类比


http://www.ppmy.cn/news/18521.html

相关文章

第六层:继承

文章目录前情回顾继承继承的作用继承的基本语法继承方式公共继承保护继承私有继承继承中的对象模型继承中的构造和析构顺序继承中同名成员访问非静态成员静态成员多继承语法注意多继承中的对象模型多继承父类成员名相同菱形继承概念菱形继承出现的问题虚继承步入第七层本章知识…

【论文翻译】ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation

【论文】https://arxiv.org/abs/2204.12484v3 【github】GitHub - ViTAE-Transformer/ViTPose: The official repo for [NeurIPS22] "ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation" and [Arxiv22] "ViTPose: Vision Transformer F…

让交互更加生动!巧用CSS实现鼠标跟随 3D 旋转效果

简单分析一下,这个交互效果主要有两个核心: 借助了 CSS 3D 的能力 元素的旋转需要和鼠标的移动相结合 本人简单的说一下如何使用纯 CSS 实现类似的交互效果,以及,借助 JavaScript 绑定鼠标事件,快速还原上述效果。 …

代码重构之路 --我的2022年总结

2022年是我正式参加工作的第10个年头,也是我在CSDN上写博客的第11个年头。在这10余年的时间里,虽然在工作上遇到了各种情况,但我一直坚持输出、坚持分享,一共在CSDN上发表了530多篇原创博文。在这些文章中,大部分都是与…

2023-1-21 刷题情况

最少侧跳次数 首先祝大家除夕快乐。 题目描述 给你一个长度为 n 的 3 跑道道路 ,它总共包含 n 1 个 点 ,编号为 0 到 n 。一只青蛙从 0 号点第二条跑道 出发 ,它想要跳到点 n 处。然而道路上可能有一些障碍。 给你一个长度为 n 1 的数组…

奶牛大学(2023寒假每日一题 1)

Farmer John 计划为奶牛们新开办一所大学!有 NNN 头奶牛可能会入学。 每头奶牛最多愿意支付 cic_ici​ 的学费。 Farmer John 可以设定所有奶牛入学需要支付的学费。 如果这笔学费大于一头奶牛愿意支付的最高金额,那么这头奶牛就不会入学。 Farmer J…

【Java开发】Spring Cloud 06 :分布式配置管理-Nacos Config

在微服务架构中,我们会使用一个分布式的“配置中心”来管理所有的配置文件和配置项,本章节将介绍 Nacos 配置中心的特性,以及这些特性在微服务体系中所发挥的作用。在 Spring Boot 应用中,我们习惯于使用传统的配置管理方式&#…

MQ消息队列高可用性

RabbitMQ的高可用性 RabbitMQ是比较有代表性的,因为是基于主从(非分布式)做高可用性的。RabbitMQ有三种模式:单机模式、普通集群模式、镜像集群模式。 单机模式,Demo级别的,一般就是本地demo,没人生产用单机模式。 普通集群模式(无高可用性)就是在多台机器上启动多…