对于中介者模式和外观模式或许有一定的了解,但是他们因为太过相似而难以分别,今天就总结一下,给自己深刻的理解;
外观模式定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
中介者模式定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
首先协议不同:中介者是为了让两个类不直接发生关系而通过中介者联系,中介者并不偏向任何一方,双方通过中介者相互和另一方发生关系关系是双向的。外观模式也是让两个类不直接发生关系,但是外观模式是偏向某一方,另一方通过外观和另一方发生关系,但某一方不一定甚至不会通过外观和另一方发生关系,也就是关系偏向单向关系。
外观模式;是一种结构化模型,中介者是行为型模式
外观模式是对子系统提供统一的接口,中介者是用一个中介对象封装一系列同事对象的交互行为。
外观模式所有的请求处理都委托给子系统完成,而中介者模式则由中心协调同事类和中心本身共同完成业务。
应用场景不同:外观模式以统一的接口提供服务,便于服务的使用为目的,中介者应用在当事双方不方便或者无能为力直接联系的场合
但是有时外观模式和中介者模式有没有确切的界限,即当外观模式有当中介者模式,所以同样的代码而是看你从哪个角度去看待这个问题。。。