架构算法设计模式和编程理论

如何让孩子爱上设计模式 ——19.中介者模式(Mediator

2017-03-15  本文已影响54人  coder_pig

标签: 设计模式初涉


描述性文字

本节讲述的是行为型结构模式中的—— 中介者模式(Mediator Pattern),说到中介这个词,
相信大家都不会陌生,特别是房产中介,房东把房子信息告知房产中介,房客通过房产中介
获取租房信息,毕竟大家都有自己的事要忙,房东和房客不用直接接触,通过房产中介即可
完成交互,一种里类似于星状的结构。

这里有必要和前面学的外观模式代理模式进行区分!

结构型,对子系统提供统一的接口,单向,所有请求都委托子系统完成,树型

结构型引用代理对象的方式来访问目标对象单向

行为型用一个中介对象来封装一系列同事对象的交互行为双向一对多星型

竟然UML类图都画了,就顺道把中介者模式概念相关的东西也讲解了吧!


定义

用一个中介对象来封装一系列的对象交互,使得各对象不需要显式的相互引用,
从而使其耦合松散,而且可以独立的改变他们之间的交互。

四个角色

使用场景

优缺点

优点

缺点

过度集中化,果同事对象的交互非常多,而且比较复杂,当这些复杂性
全部集中到中介者的时候,会导致中介者对象变得十分的复杂,而且难于管理和维护。


代码示例

这里用写个简单的房屋中介例子,帮助大家理解这个模式的使用。

首先是抽象中介类,里面只有一个连接同事进行交互的方法

接着到抽象同事类,两个属性,姓名,还有一个中介类的引用,因为所有同事都知道中介

再接着是具体同事类,这里有房东和房客

然后是具体中介类,因为中介者知道所有的同事,这里创建两个引用,另外
实现交互方法时对,调用者进行判断,完成对应的信息显示,比如这里房东发的,
房客收到。

最后客户端调用

输出结果

代码也很简单,中介者持有所有同事引用,然后在里面做一些逻辑操作,
然后每个同事类持有中介者引用,依次完成交互。


本节代码示例

https://github.com/coder-pig/DesignPatternsExample/tree/master/18.Mediator%20Pattern


上一篇下一篇

猜你喜欢

热点阅读