日期:2014-05-19  浏览次数:20835 次

深入探讨中介者模式和门面模式(外观模式)的区别
如题,请大家踊跃参与,谢谢

------解决方案--------------------
中介者模式是让两个类不直接发生关系,而是通过中介者联系,中介者并不偏向于任一方,双方通过中介者互相和另一方发生关系,关系是双向的

门面模式也是让两个类不直接发生关系,但是门面偏向于某一方,另一方通过门面和某一方发生关系,但某一方不一定甚至不会通过门面和另一方发生关系,也就是关系偏向于单向关系



------解决方案--------------------
中介者模式和门面模式的区别:

我来打个比方吧。

中介者模式: 你的电脑 CPU 显卡 电源 还有你 ,那你要用电脑 还需要个主板把这些零件整起来

那用到的主板就是 用了 中介者模式。

门面模式:一个CLASS A 还有一个 CLASS B ,你创建一个 CLASS C ,这个CLASS C里 创建的实体

有 CLASS A 和 CLASS B的实体 ,就是创建一个更高一层的实体 来操作 A 和 B 。

细心体会下吧。
------解决方案--------------------
1。门面模式是结构型模式,中介者模式是行为型模式。
2。门面模式是对子系统提供统一的接口,中介者模式是用一个中介对象来封装一系列同事对象的交互行为。
3。门面模式协议是单向,中介者模式协议是双向。
4。门面模式所有的请求处理都委托给子系统完成,而中介者模式则由中心协调同事类和中心本身共同完成业务。
------解决方案--------------------
中介者模式应用在当事双方不方便或无能力直接联系的场合
门面模式出于 以统一的接口对外提供服务,便于服务的使用为目的