using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 中介者模式{ public abstract class Person { public string Name {...
GOF:用一个中介对象来封装一系列的对象交互。中介者使对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 类图: 适用性:一组对象以定义良好但是复杂的方式进行通信。因为这组类之间的相互关系错综复杂,如果直接管理会十分困难,因此利用中介者管理它们的关系,而Clien...
分类:
其他好文 时间:
2015-05-23 21:16:18
阅读次数:
125
class Infantry( object ):
def __init__( self, mediator, name ):
self.name = name
self.mediator = mediator
def send( self, msg ):
self.mediator.send( msg, self )
...
分类:
编程语言 时间:
2015-05-21 19:38:08
阅读次数:
151
意图: 中介者模式也属于行为模式的一种,它的意图是使用一个中介对象来封装一系列的对象交互。中介者使得对象不需要显示的相互引用,从而使其耦合松散,而且可以独立改变它们之间的交互。 动机: 面向对象的设计鼓励将行为分布到各个对象中去,这种分布可能导致对象间有许多的连接,在最坏的情况下,每一个对...
分类:
其他好文 时间:
2015-05-18 22:52:32
阅读次数:
213
中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。中介者是各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。
中介者模式很容易在系统中应用,也很容易在系统中误用。当系统出现多对多交互复杂的对象群是,不要急于使用中介者模式,而要先反思你的系统在设计上是不是合理。
优点:Mediator的出现减少了各个colleague的耦合,使得可以独立地改变和...
分类:
编程语言 时间:
2015-05-18 14:50:51
阅读次数:
147
中介者模式Mediator中介者模式又称作调停模式。
所谓中介,在我们生活中很是常见,我们买房子可以有中介公司,找兼职也可以有中介公司。以买房子为例。中介者把所有的买房人、卖房人的需求和特点都结合到一起,把适合的房子提供给合适的人。
首先我们要理解中介者模式的定义:用一个中介者对象来封装一系列对象的交互。中介者使得各对象不需要显式地相互引用,从而解耦合,独立改变他们之间的交互。实现原理图
中介...
分类:
其他好文 时间:
2015-05-13 14:50:35
阅读次数:
142
场景
假如没有总经理。下面三个部门:财务部、市场部、研发部。财务部要发工资,让大家核对公司需要市场需要跟市场部和研发部通气;市场部需要接个新项目,需要研发部处理技术、需要财务部出资金。市场部跟各个部门打交道。虽然只有三个部门,但是关系非常乱。
实际上,公司都有总经理。各个部门有什么事情都通报到总经理这里,总经理再通知各个相关部门。
这就是一个典型的中介者模式
总经理起到一个中介、协...
分类:
编程语言 时间:
2015-05-09 15:01:36
阅读次数:
164
中介者模式,英文名:Mediator。基本概念:中介者允许我们公开一个统一的接口,系统的不同部分可以通过该接口进行通信。使用场景:一个系统的各个组件之间看起来有太多的直接关系,这时需要一个中心控制点,以便各个组件可以通过这个中心控制点进行通信。作用:确保组件的交互是通过这个中心控制点来处理的,而不是...
分类:
其他好文 时间:
2015-05-07 11:49:02
阅读次数:
146
如果对象之间的联系呈现为网状结构,存在大量的多对多联系,在网状结构中,几乎每个对象都需要与其他对象发生相互作用,而这种相互作用表现为一个对象与另外一个对象的直接耦合,这将导致一个过度耦合的系统。如果在一个系统中对象之间存在多对多的相互关系,我们可以将对象之间的一些交互行为从各个对象中分离出来,并集中封装在一个中介者对象中,并由该中介者进行统一协调,这样对象之间多对多的复杂关系就转化为相对简单的一对多关系。通过引入中介...
分类:
其他好文 时间:
2015-05-06 15:04:49
阅读次数:
142
中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。如果使用中介者模式,只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行,这有点像spring容器的作用。先看看图:Use...
分类:
其他好文 时间:
2015-05-06 10:28:30
阅读次数:
134