设计模式---接口隔离模式之中介者模式(Mediator)

一:概念

在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互。Mediator对象起到控制器的作用

二:动机

在软件构建的过程中,经常出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到了一些需求的更改,这种直接的引用关系将面临不断的变化。在这种情况下,我们可以使用“中介对象”来管理对象间的关联关系,避免相互交互的对象之间的紧耦合引用关系,从而更好地抵御变化。
在这种情况下,我们可使用一个“中介对象”来管理对象间的关联关系,避免相互交互的对象之间额紧耦合引用关系,从而更好地抵御变化。

三:模式定义

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

                                                                                      --《设计模式》Gof 

四:结构

五:与Facade模式比较

Facade是系统外与系统内之间的隔离,而中介者Mediator解决的是系统内中各个对象之间的隔离。
多个对象,呈现复杂的引用关系时使用Mediator模式

六:类图

七:要点总结

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

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

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

原文地址:https://www.cnblogs.com/ssyfj/p/9545882.html

时间: 2024-08-25 21:24:32

设计模式---接口隔离模式之中介者模式(Mediator)的相关文章

【设计模式】 模式PK:门面模式VS中介者模式

1.概述 门面模式为复杂的子系统提供一个统一的访问界面,它定义的是一个高层接口,该接口使得子系统更加容易使用,避免外部模块深入到子系统内部而产生与子系统内部细节耦合的问题.中介者模式使用一个中介对象来封装一系列同事对象的交互行为,它使各对象之间不再显式地引用,从而使其耦合松散,建立一个可扩展的应用架构. 2.中介者模式实现工资计算 2.1 类图 大家工作会得到工资,那么工资与哪些因素有关呢?这里假设工资与职位.税收有关,职位提升工资就会增加,同时税收也增加,职位下降了工资也同步降低,当然税收也降

设计模式之第19章-中介者模式(Java实现)

设计模式之第19章-中介者模式(Java实现) “测试妹纸找你,你的代码出问题了.”“美工妹纸让你看看界面怎么样.”身为程序员总要和各种人打交道,但是如果再分为前端.后端工程师的话,那么关系就会错综复杂起来了,这个时候如果有中介者进行中转,类似于星型网络拓扑的交换机,那么该有多好.(PS:注孤生啊,和测试妹纸.美工妹纸什么的一起讨论增进感情多好,那么好的机会都不珍惜.编者按:我是要做那个中介者,懂么?中介者!众人:good job!)“鱼哥,叫我干嘛?”真是说曹操曹操到,刚刚正说你来着,行了,你

设计模式(十六)中介者模式(Mediator)-行为型

中介者模式Mediator 中介者模式又称作调停模式. 所谓中介,在我们生活中很是常见,我们买房子可以有中介公司,找兼职也可以有中介公司.以买房子为例.中介者把所有的买房人.卖房人的需求和特点都结合到一起,把适合的房子提供给合适的人. 首先我们要理解中介者模式的定义:用一个中介者对象来封装一系列对象的交互.中介者使得各对象不需要显式地相互引用,从而解耦合,独立改变他们之间的交互. 实现原理图 中介者模式的实现原理图 比较 门面模式PK中介者模式: 1.门面模式是结构型模式,中介者模式是行为型模式

行为型模式:中介者模式

文章首发:行为型模式:中介者模式 十一大行为型模式之二:中介者模式. 简介 姓名 :中介者模式 英文名 :Mediator Pattern 价值观 :让你体验中介是无所不能的存在 个人介绍 : Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explici

20行为型模式之中介者模式

概念 Mediator模式也叫中介者模式,是由GoF提出的23种软件设计模式的一种.Mediator模式是行为模式之一,在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互,Mediator对象起着控制器的作用. 角色和职责 GOOD:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示的相互引用,从而降低耦合:而且可以独立地改变它们之间的交互. Mediator抽象中介者 中介者类的抽象父类. concreteMed

C语言的设计模式-接口隔离

C语言的设计模式-接口隔离 接口隔离: 定义为客户端不应该依赖它不需用的接口,在C语言中我们可以把头文件看成一个模块的接口,根据接口隔离原则也就是说这个头文件中只能包含外部需要的接口,但在实际的项目中往往头文件都不符合接口隔离原则. 1:内.外部接口的隔离:头文件中通常包含了模块内部接口(内部类型定义.内部接口声明)和外部接口(外部接口声明) 假设moudle模块对外提供一个fun1接口,模块内部实现需要定义一个结构类型,一般的实现如下: /*moudle.h*/typedef struct s

设计模式(五):中介者模式

在<JavaScript设计模式>关于中介者模式的介绍里,里面有些错误和擅自添加的例子,虽然例子(英文版没有)是为了让人更好理解,但是该篇章加上的例子却给人误导的感觉,所以如果有人读这个章节时,建议看英文版. 在看这个模式时候,我只想弄明白一点,中介者模式与订阅/发布模式的区别在哪? 中介者模式定义 中介者作为一种行为设计模式,它公开一个统一的接口,系统的不同对象或组件可以通过该接口进行通信.增加一个中介者对象后,所有的相关对象通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只

&quot;围观&quot;设计模式(25)--行为型之中介者模式(Mediator Pattern)

用一个对象封装一系列的对象交互,中介者使对象不需要显示的相互作用,从而使其耦合松散,而且可以独立的改变他们之间的独立. 个人理解 当多个对象之间存在着过多的耦合时,可以通过中介者模式进行解耦,将具体的对象之间的耦合转为中介者与具体对象的耦合,假如说之前是三个对象的相互之间的耦合,转为中介者与具体类的耦合之后,从耦合性上大大的降低了,这样如果再来对其进行修改的话,那么变更部分主要在中介者部分,从而使得该结构更加稳定. 角色分析 中介者角色分以下几个部分: 1. Mediator抽象中介者角色:抽象

23种设计模式(7):中介者模式

定义 用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互. 类图 中介者结构 抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信.一般包括一个或几个抽象的事件方法,并由子类去实现. 中介者实现类:从抽象中介者继承而来,实现抽象中介者中定义的事件方法.从一个同事类接收消息,然后通过消息影响其他同时类. 同事类:如果一个对象会影响其他的对象,同时也会被其他对象影响,那么这两个对象称为同事类.在类图中,同事类