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

中介者模式Mediator

中介者模式又称作调停模式。

所谓中介,在我们生活中很是常见,我们买房子可以有中介公司,找兼职也可以有中介公司。以买房子为例。中介者把所有的买房人、卖房人的需求和特点都结合到一起,把适合的房子提供给合适的人。

首先我们要理解中介者模式的定义:用一个中介者对象来封装一系列对象的交互。中介者使得各对象不需要显式地相互引用,从而解耦合,独立改变他们之间的交互。

实现原理图

中介者模式的实现原理图

比较

门面模式PK中介者模式:

1.门面模式是结构型模式,中介者模式是行为型模式。

2.门面模式是对子系统提供统一的接口,中介者模式是用一个中介对象来封装一系列同事对象的交互行为。

3.门面模式协议是单向,中介者模式协议是双向。

4.门面模式所有的请求处理都委托给子系统完成,而中介者模式则由中心协调同事类和中心本身共同完成业务。

门面模式PK代理模式:

1.代理模式中的代理角色和真实角色都继承于同一类。而门面模式是多个类的集合。

2.代理角色与真实角色接口相同,功能一致,代理角色实现的是真实角色的功能。外观者模式的子系统功能不同,根据用户不同需要与外观类统一配置。

代理模式PK中介者模式:

1.代理模式是一对一,一个代理只能代表一个对象。中介者模式则是多对多,中介者的功能多样,客户也可以多个。

2.只能代理一方。如果PB是A的代理,那么C可以通过PB访问A,但是A不能通过PB访问B。对于中介者模式而言,A可以通过中介访问B,B也可以通过中介访问A。

参考文献

[1] 郭峰.深入浅出设计莫模式[M].中国铁道出版社,2013(1):325-361.

时间: 2024-10-16 20:39:01

设计模式(十六)中介者模式(Mediator)-行为型的相关文章

设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)

设计模式 ( 十五 ) 中介者模式Mediator(对象行为型) 1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中. 对于一个模块或者系统,可能由很多对象构成,而且这些对象之间可能存在相互的引用,在最坏的情况下,每一个对象都知道其他所有的对象,这无疑复杂化了对象之间的联系.虽然将一个系统分割成许多对象通常可以增强可复用性,但是对象间相互连接的激增又会降低其可复用性,大量的相互连接使得一个对象似乎不太可能

设计模式 ( 十六 ) 观察者模式Observer(对象行为型)

1.概述 一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力.当对象们连接在一起时,它们就可以相互提供服务和信息. 通常来说,当某个对象的状态发生改变时,你仍然需要对象之间能互相通信.但是出于各种原因,你也许并不愿意因为代码环境的改变而对代码做大的修改.也许,你只想根据你的具体应用环境而改进通信代码.或者,你只想简单的重新构造通信代码来避免类和类之间的相互依赖与相互从属. 2.问题 当一个对象的状态发生改变时,你如何通知其他对象?是否需要一个动态方案――一个就像允许脚本的执行一样,允

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

1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中. 对于一个模块或者系统,可能由很多对象构成,而且这些对象之间可能存在相互的引用,在最坏的情况下,每一个对象都知道其他所有的对象,这无疑复杂化了对象之间的联系.虽然将一个系统分割成许多对象通常可以增强可复用性,但是对象间相互连接的激增又会降低其可复用性,大量的相互连接使得一个对象似乎不太可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,而且对系

设计模式之中介者模式(Mediator)摘录

23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象.创建型模式有两个不断出现的主旋律.第一,它们都将关于该系统使用哪些具体的类的信息封装起来.第二,它们隐藏了这些类的实例是如何被创建和放在一起的.整个系统关于这些对象所知道的是由抽象类所定义的接口.因此,创建型模式在什么被创建,谁创建它,它是怎样被创建的,以

设计模式16:Mediator 中介者模式(行为型模式)

Mediator 中介者模式(行为型模式) 依赖关系的转化 动机(Motivation) 在软件构建过程中,经常出现多个对象互相关联交互的情况,对象之间经常会维持一种复杂的应用关系,如果遇到一些需求的更改,这种直接的引用将面临不断的变化. 在这种情况下,我们可以使用一个“中介对象”来管理对象间的关联关系,避免相互的对象之间的紧耦合引用关系,从而更好地抵御变化. 意图(Intent) 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变它们

C#设计模式之十七中介者模式(Mediator Pattern)【行为型】

原文:C#设计模式之十七中介者模式(Mediator Pattern)[行为型] 一.引言 今天我们开始讲"行为型"设计模式的第五个模式,该模式是[中介者模式],英文名称是:Mediator Pattern.还是老套路,先从名字上来看看."中介者模式"我第一次看到这个名称,我的理解是,在两个对象中间增加一个"中间对象","中间对象"协调两个对象的关系,但是随着理解的深入,"中间对象"处理关系的对象可能不只是

Java设计模式菜鸟系列(二十二)中介者模式建模与实现

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40027109 中介者模式(Mediator):主要用来降低类与类之间的耦合的,因为如果类与类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改. 一.uml建模: 二.代码实现 /** * 中介者模式(Mediator):主要用来降低类与类之间的耦合的,因为如果类与类之间有依赖关系的话, * * 不利于功能的拓展和维护,因为只要修改一个对象,其它

设计模式 笔记 中介者模式 Mediator

//---------------------------15/04/27---------------------------- //Mediator 中介者模式----对象行为型模式 /* 1:意图: 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散, 而且可以独立地改变它们之间的交互. 2:动机: 3:适用性: 1>一组对象以定义良好但是复杂的方式进行通信.产生的相互依赖关系结构混乱且难以理解. 2>一个对象引用其他很多对象并且直接与这些对象通信

Java设计模式(六)合成模式 享元模式

(十一)合成模式 Composite 合成模式是一组对象的组合,这些对象可以是容器对象,也可以是单对象.组对象允许包含单对象,也可以包含其他组对象,要为组合对象和单对象定义共同的行为.合成模式的意义是 保证客户端调用单对象与组合对象的一致性. class TreeNode{ private String name; private TreeNode parent; private Vector<TreeNode> children = new Vector<TreeNode>();

设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为)

 设计模式(十二)职责链模式(Chain of Responsibility)(对象行为型) 1.概述 你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决.不能解决就推卸给另外个一个部门(对象).至于究竟谁来解决问题呢?政府部门就是为了能够避免屁民的请求与官员之间耦合在一起,让多个(部门)对象都有可能接收请求,将这些(部门)对象连接成一条链,而且沿着这条链传递请求.直到有(部门)对象处理它为止. 样例1:js的事件浮升机制 样例2: 2.问题 假设有多个对象都有