文档章节

中介者模式

G
 GodBlessYou
发布于 2010/09/21 16:45
字数 741
阅读 169
收藏 1

作者: God bless you 发表于 2010-06-06 10:16 原文链接 阅读: 66 评论: 0

Mediator

中介者模式:中介模式封装一系列的对象交互,集中管理相关对象之间复杂的沟通和交互。中介者使各对象不需要明显的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。简单点来说,将原来两个直接引用或者依赖的对象拆开,在中间加入一个“中介”对象,使得两头的对象分别和“中介”对象引用或者依赖。

 

clip_image002

 

实现:

clip_image004

Mediator:定义一个接口用于和各Colleague通信,其中主要的方法是一个或多个事件方法。

Concrete Mediator:

1. 继承Mediator,实现事件方法。

2. Concrete Mediator知晓所有的具体Colleague,它从具体Colleague对象接收消息,向具体Colleague发出命令。

Colleague:

1. 每一个Colleague都知道它的Mediator,而不知道其他Colleague。

2. 每一个Colleague与其他Colleague通信时,与它的Mediator通信。

 

要点:

1. Colleague向一个Mediator对象发送和接收请求。Mediator在各Colleague之间适当的转发请求以实现协作行为。

2. Mediator常常用于协调相关的GUI组件。

3. Colleague可以使用观察者模式与Mediator通信,Mediator收到通知后将状态改变的结果传播给其他的Colleague。

4. 也可以在Mediator中定义一个特殊的通知接口,各Colleague在通信时直接调用该接口。当与Mediator通信时, Colleague可以将自身作为一个参数传递给Mediator,使其可以识别发送者。

5. Façade为一个子系统提供一个简单的接口,其中消息的传送是单向的。Mediator则不同,它与Colleague对象的相互作用是多向的。

 

适用性:

1. GUI组件间的相互协调合作。

2. Mediator使用的情形很少,使用时首先应谨慎判断是否自己在滥用模式。

 

优点:

1. 避免Colleague对象之间的过度耦合,增加各Colleague和Mediator的复用性。

2. Mediator将控制逻辑集中,简化了系统的维护(一对多代替多对多的交互)。

缺点:

如果设计不当,Mediator对象会相当复杂。

评论: 0 查看评论 发表评论

程序员找工作,就在博客园

最新新闻:
· 中国联通押宝iPhone 与苹果合作仍在博弈(2010-09-21 16:23)
· 小心!10大沟通误区可能让CIO落马(2010-09-21 16:17)
· Zune 软件与服务国际化细节公开(2010-09-21 16:07)
· 雨林木风巨资兴建研发中心大楼(2010-09-21 16:06)
· 时隔四个月,Google 拼音 2.3.14.85 新版发布(2010-09-21 16:04)

编辑推荐:详解ASP.NET的最新安全漏洞

网站导航:博客园首页  个人主页  新闻  闪存  小组  博问  社区  知识库

本文转载自:http://www.cnblogs.com/god_bless_you/archive/2010/06/06/1752518.html

上一篇: 外观模式
下一篇: 状态模式
G
粉丝 1
博文 10
码字总数 1550
作品 0
深圳
私信 提问
设计模式的学习(13)中介者模式

中介者模式 中介者模式(Mediator Pattern)又称为调停者模式,是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,中介者通常处理不同对象之间的通信,使各对象不需要显式...

杨健-YJ
2018/12/29
17
0
我的Java设计模式-中介者模式

*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 小时候钟爱战争片,《地道战》、《鸡毛信》、《铁道游击队》一系列的老电影,咦~想起都激动得起鸡皮疙瘩。不过觉得特别逗的是,电影...

Jet啟思
2018/01/17
0
0
《JavaScript设计模式与开发实践》模式篇(11)—— 中介者模式

中介者模式的作用就是解除对象与对象之间的紧耦合关系。增加一个中介者对象后,所有的 相关对象都通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只需要通知 中介者对象即...

嗨呀豆豆呢
2018/12/23
0
0
Java设计模式之-中介者模式(Mediator)

中介者模式,又叫调停者模式。我看的书里面是叫做调停者的,我个人认为没有“中介者”这个名字容易理解。 中介者模式:在一个庞大系统中,多个类之间需要进行信息的交换,从而引发后续的行为...

Mock2052
2017/11/28
0
0
设计模式之中介者模式(行为型)

[TOC] 一、模式定义 中介者模式(Mediator Pattern):中介者模式就是用一个中介对象来封装一系列的对象的交互,使各对象之间不需要显式地相互作用,降低对象之间的耦合度,中介者是一种对象行...

smileNicky
04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SSH安全加强两步走

从 OpenSSH 6.2 开始已经支持 SSH 多因素认证,本文就来讲讲如何在 OpenSSH 下启用该特性。 OpenSSH 6.2 以后的版本多了一个配置项 AuthenticationMethods。该配置项可以让 OpenSSH 同时指定...

xiangyunyan
32分钟前
4
0
C或C++不是C/C++

http://www.voidcn.com/article/p-mucdruqa-ws.html

shzwork
今天
6
0
OSChina 周六乱弹 —— 如何将梳子卖给和尚

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @for_ :划水五分钟,专注两小时。分享Various Artists的单曲《贝多芬第8号钢琴奏鸣曲悲伤的第三乐章》: 《贝多芬第8号钢琴奏鸣曲悲伤的第三乐...

小小编辑
今天
191
8
ES5

什么是ES5:比普通js运行要求更加严格的模式 为什么:js语言本身有很多广受诟病的缺陷 如何:在当前作用域的顶部添加:"use strict" 要求: 1、禁止给未声明的变量赋值 2、静默失败升级为错误...

wytao1995
今天
7
0
c++ 内联函数调用快的原因

见图片分析

天王盖地虎626
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部