Design Pattern: Mediator 模式

第7.1章:StarRocks性能调优——查询分析 阅读详情

Mediator的意思是中介者、调节者、传递物,顾名思义,这个模式在程式中必然负担一个中介、调节、传递的工作。

物件导向设计中,每个物件所负担的工作尽可能的简单明了,鼓励物件将工作分布至其它物件上,让一群工作属性相同的物件得以共同合作,即所谓高聚合性,以增加物件的可重用性。

然而在组织物件工作的同时,物件彼此之间可能知道彼此的存在,并相互依赖,这就使得物件之间的耦合性相对的提高,最差的情况下,所有的物件都知道彼此的存在,这又会使得系统的重用性降低。

Mediator模式用一个中介的物件来封装物件彼此之间的交互,物件之间并不用互相知道另一方,这可以降低物件之间的耦合性,如果要改变物件之间的交互行为,也只需要对Mediator加以修改即可。

在 Gof 的书 中所举的例子为对话方块组件;例如,当一个特定的输入栏为空时,另一个按钮不能使用;在ListBox的选项中选择一个项目,将会改变另一个栏位的内容;反过来的,输入栏位的内容也会影响ListBox的选择等等。

Mediator

在这个例子中,可以设计对话方块中的组件知道彼此的存在,由一个直接影响另一个(或多个)组件,但最好的方法,还是设计一个Mediator,由它来协调组件之间的交互,例如设计一个FontDialogDirector类别来作为中介者。

Mediator
 

可以从Sequence Diagram来了解Mediator的运作:

Mediator  

当ListBox发生变化时,它会呼叫Mediator的listBoxChanged()方 法,Mediator取得变化的组件之状态,并重新设定所有与它有交互的组件,同样的,其它的组件发生变化时,也呼叫Mediator上对应的方法,由 Mediator来取得组件变化,并设定其它互动的组件。

简单的说,Mediator设计有与组件沟通的介面,介面中封装了与其它组件互动细节,组件与组件之间不用知道彼此的存在,它们只要与Mediator沟通就好了,利用这种方式,可以切开组件与组件之间的耦合。

Mediator模式的 UML 结构图如下所示:

Mediator

基本上Mediator模式在使用的弹性很大,由Sequence Diagram理解概念,会比从Class Diagram了解结构来得重要,不过在Class Diagram中可以注意的是类别的名称,Colleague是同事的意思,将一群共事的元件视为一群共同合作的同事,为了使同事之间的活动独立,并使得 团队合作的交互更具弹性,需要一个Mediator来协调同事之间的业务行为。

如何设置反馈点 前面的POWER DC仿真都是忽略反馈线进行的仿真,如果单板压降不过,电源会自动调整输出电压,来满足负载的得到额定的电压.可以看到因为设置了反馈点,源端电压就被抬高到满足压降的值了。仿真上也可以自己添加反馈点,以得到抬高后的电源输出电压值。同样以下图的CPU的Core电源为例。按照流程正常设置好参数。 阅读详情

相关推荐

从零到一:Silvaco中跨导曲线的自动化脚本实现

本文详细介绍了如何使用Python脚本在Silvaco中实现跨导曲线(gm曲线)的自动化分析,包括数据加载、跨导计算和结果可视化。通过自动化处理Id-Vg曲线,显著提升半导体器件工程师的工作效率,特别适用于工艺优化和DOE分析。文章还提供了批量处理和关键参数提取的高级技巧,帮助工程师快速掌握Silvaco脚本开发。

nn3456的博客 566

中介者设计模式(Mediator Design Pattern)[论点:概念、组成角色、相关图示、示例代码、适用场景]

中介者设计模式是一种行为型设计模式,它通过引入一个中介对象来封装一组对象之间的交互,使得对象之间不需要显式地相互引用,从而降低它们之间的耦合。通过将对象间的通信封装到中介者对象中,可以更容易地对这些对象的交互进行维护和修改。

龙飞的博客 1041

SAP MIRO发票自动化:BAPI_INCOMINGINVOICE_CREATE实战解析

本文深入解析了如何使用SAP标准BAPI_INCOMINGINVOICE_CREATE实现MIRO发票校验流程的自动化。通过实战代码示例,详细阐述了从采购订单和收货凭证获取数据、构建BAPI核心参数、处理常见错误到高级场景优化的完整路径,旨在帮助SAP开发人员构建稳定、高效的自动化解决方案,提升财务处理效率与准确性。

weixin_29243279的博客 499

[Design Pattern] Mediator Pattern 简单案例

Meditor Pattern,即调解模式,用一个调解类类处理所有的沟通事件,使得降低多对象之间的沟通难度,属于行为类的设计模式。为了方便理解记忆,我也称其为,沟通模式。 下面是一个调解模式的简单案例。 ChatRoom 提供公用发送短信的方法。User 全部通过 ChatRoom 类发送信息进行沟通。MediatorPatternDemo 演示调解模式。 代码实现...

139

数字加网(一)— —概念及分色合成

由于大多数图像复制设备是二值设备,因此在图像复制过程中,必须先把连续调的灰度图像或彩色图像处理成二值的半色调图像,用单位面积的网点覆盖率来表现图像的颜色深浅变化。这个过程被称之为加网(Screening) 数字加网就是根据人眼视觉的空间混色特性,用人眼无法分辨的细小黑白点的单位覆盖面积来模拟灰度图像或彩色图像的层次变化,使得到

Sin_Geek成长の迹 8591

基于FME—三调篇—尖锐角及小缝隙处理

1 问题分析: 该功能实现在FME较为简单,相对ARCGIS模型构建器以及ARCGIS ENGINE,FME更适合无代码基础的人群。在三调内业数据处理要求中,尖锐角是不允许存在的。本文基于FME实现了对尖锐角的自动查询与消除以及自动处理在消除尖锐角过程中产生的缝隙,并进行了拓扑检查,实现自动化批量处理尖锐角的功能,提高工作效率。 2 总体思路: 2.1 实现功能分析: 1.找出小于指定角度的尖锐角...

qq_33315579的博客 9180

Mediator Design Pattern 中介者模式

就是设计一个Mediator类,可以处理其他类的关系。 Mediator类: 1 拥有其他所有类的实例对象 2 设置一个接口供其他类使用,其他类也拥有一个Mediator类成员,只需调用这个Mediator接口函数使用,无需自己处理关系。 3 Mediator内部已经设置好各个类的关系了,其他类只要直接使用Mediator处理关系就可以了。 下面是一个聊天室聊天是处理关系的实例程序:

靖空间 1200

手把手教您同花顺如何设置大盘分时均价线

本文将手把手教你如何在同花顺PC端开启大盘指数分时图📈

XiaoqiangClub的博客 4389

《设计模式Design Pattern》读书笔记之十五

《设计模式Design Pattern》读书笔记之十五Mediator模式结构 目的为了减少大量的对象(colleague)之间互相通信的复杂性,创建一个中间人--mediator(类似于HUB);这样,各个colleague只要建立跟mediator之间的联系,而不需要直接跟各个colleague直接连接。各个colleague之间的通信完全通过mediator进行处理。 优点1,  Media

Jadyleung的专栏 1501

PhotovoltaicPanelCleanlinessDetector:基于YOLOv8的光伏板清洁状态监测系统

data.yamlyaml复制编辑names:0: clean1: dust3: leaves4: shadow✅ 高精度污染识别✅ 具备实时检测与UI展示✅ 可本地化部署应用未来方向增加污染程度分级(轻度、中度、严重)加入时间序列分析(污染变化趋势预测)无人机集成巡检模块。

YOLO 275

开发Qt上位机获取阿里云IOT设备数据(开发上位机对接阿里云IOT平台)

使用Qt框架开发一款上位机软件,调用阿里云物联网平台的API接口,获取设备最新上传的实时数据,并在Qt设计的软件界面上展示处理。同时,还支持绘制曲线图表展示数据,并具备定时刷新功能。

2143

《设计模式Design Pattern》读书笔记之十七

《设计模式Design Pattern》读书笔记之十七Observer模式结构 目的在一个一对多(one-to-many)的关系中,当一个对象(one)的状态被更新的时候,它的所有的相关对象(many)都会被得到通知。 讨论1,  可能会带来很大的状态更新成本,subject的一个很小的状态更新都可能使得大量的observer进行相应的更新。更为严重的是,如果subject不提供是什么状态被更新了

Jadyleung的专栏 1450

ChatGPT启蒙之旅:弟弟妹妹的关键概念入门

本文主要介绍了ChatGPT启蒙之旅:弟弟妹妹的关键概念探险,希望能对初学大模型的同学们有所帮助。 文章目录 1. 背景 2. GPT是个什么样的人? 3. GPT使用的核心思维 4. GPT使用的场景介绍

herosunly的博客 16万+

Head First Design Patterns

    在更大的计划之前,先温习一下Design Pattern的功课。    看了《Head First Design Patterns》里讲Decorator的样章,发现JOLT大奖不是白拿的,叙事能力之强,表达之清晰,不是那些满腹经伦的老先生可以比的。而且整个Pattern的讲述过程循序渐进,真的可以保证--小白都能学会设计模式。如果有中文版一定买一本,下一代的程序员有福了。    可惜就只

花钱的年华 8914

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Design Pattern - Mediator(C#)

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!                DefinitionD

yffhhffv的博客 224

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

[Design] Mediator Pattern

  行为模式主要是责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。  行为模式分为类的行为模式和对象的行为模式两种。类的行为模式 类的行为模式使用继承关系在几个类之间分配行为。对象的行为模式 对象的行为模式则使用对象的聚合来分配行为。------------------------------------------------------...

diangang3082的博客 78

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Design Pattern - Behavioral Patterns - Mediator Pattern

2007 Section 5, Chapter 3 Mediator Pattern Concept The Mediator pattern allows groups of objects to communicate in a disassociated manner and encapsulates this comm

Vincent's Tech Blog 830

Design Pattern_Mediator(中介者模式)

参考jdon:http://www.jdon.com/designpatterns/mediator.htm Mediator其实就类似于关系型数据库中的ManyToMany关系,通过中间对象Mediator连接 这里可以举一个多对多聊天的例子:

布莱克洛 744

Design Pattern - Mediator Pattern

Mediator Pattern 中介者模式(Mediator Pattern),又称为调停者模式,调解者模式。使用中介者封装一系列对象之间的交互。中介者可以使各对象不用显示地相互作用,从而使其松散耦合。此外,可以独立改变对象间的交互。它属于行为型设计模式。 特点 使用中介者解耦系统各层次对象的直接耦合,各层次对象的对外依赖通信,统统交给中介者进行转发。 适用场景 系统各对象之间存在比较复杂的依赖关系。 存在公共的交互行为,可以使用中介者封装这个行为。 优点 将多对多的依赖转化成一对多的依赖,降低了类之间的

The Secret 331

Mediator Design Pattern

意图:一组对象定义良好,但是以复杂的方式进行通讯;一个对象引用很多其他对象,依赖关系复杂;减少了子类的生成;使得对象的通信集中化;把各个Colleague解耦;参与者:1)Mediator:中介;定义一个接口用于个同事Colleague之间的通信;public abstract

kissjob的专栏 562

掌握Kotlin设计模式:Visitor、Mediator、Memento模式终极指南

在软件开发中,设计模式是解决常见问题的最佳实践。**Kotlin设计模式**为开发者提供了优雅的代码组织方式,本文将深入解析三种高级设计模式:Visitor、Mediator和Memento模式,帮助你写出更具可维护性和扩展性的Kotlin代码。 ## 一、Visitor模式:灵活操作对象结构 Visitor模式允许你在不修改现有类的情况下,为对象结构添加新的操作。这种模式特别适合处理复杂对象

gitblog_00080的博客 527

Design Pattern的万剑归宗 => Mediator

Overview 今天看了YouTube上的一个讲Design Pattern的视频,把这个视频的大意给大家分享一下,该视频的作者是Anthony Ferrara。 大意就是作者把22种Design Pattern不断的重组归纳抽象直道最后抽象为一种设计模式,Mediator。 而所有的Design Pattern关注的核心问题就是如何...

weixin_34112030的博客 215

Mediator design pattern

Mediator:Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently. 處理不同物件(類)之間的溝通秩序的模式,這些類之間的關係是平行獨立的

weixin_45661658的博客 269
上一篇: 我的插件开发学习4--html5之Websocket对象
下一篇: 视频编码简介
zzulp
博客等级 码龄19年 464粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值