您的位置:首页 > 其它

中介者模式(Mediator)

2007-07-05 10:38 225 查看
中介者模式
作用:
用一个中介对象来封装一系列的对象操作。中介者使各对象不需要显式地相互交互,从而使其耦合松散,而且可以独立地改变它们之间的交互。

正文:

中介者模式是一个简单易用的模式。也许很多人在实际的项目中都已经用到过了,只是不知道它就是中介者模式。它把多对多的交互变成了一对多的交互,从而简化的交互,理清了思路。

让我们来看个例子。



去年买了一套二手房(在杭州没钱的人只能这样了),中间的手续还是挺多的,看了让人心慌。

粗略的列了下:

1. 自己要和房东讲价钱。

2. 到银行贷款。

3. 卖方也是银行贷款的,要把我的帐户钱转到卖方帐户上。

4. 到政府机构办理证件。

我这里把政府机构简化了,因为办的证太多,涉及的部门也很多,在中国就是这样,七证八税的,而且这些部门都分开,让你跑的死去活来。

看来还是通过房屋买卖中介吧,他们对这一行业都很熟悉,办的速度也快,就是要破财,心疼啊。



这样,条理就清楚多了。

1. 我让中介去谈价。

2. 中介为我办理贷款的一切手续。

3. 我把钱打入中介开的一个中转帐户。

4. 中介为我办理证件。

这样我唯一接触的对象就是房屋买卖中介,有事我就找中介,中介需要我的时候,就会联系我,我还是边工作边买房,。这多简单,当然在这里我深深地体会的钱的好处。

到这里,我想读者可能明白了中介者模式了。那接下来就上升到理论了。



Mediator:(中介者

定义了接口与各同事类交互。

CConcreteMediator:(具体中介者

创建并协调各个同事类。

Colleague Class: (同事类)

每个同事者都知道中介者对象。

在需要与其它同事类通讯时,通知中介者。

在这里,一个同事类要与其它同事类通讯时,要通知中介者,然后由中介者去通知其要通讯的同事类,是不是可以用上观察者模式(Observer)了?每个同事类都是被观察者,而中介对象就是观察者。

中介者模式断绝各个同事类之间的直接交互,把复杂的交互交给了中介者。“与其多个人累,不如我一个人来累”,这就是中介者模式的精神。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: