中介者模式(调停模式):用一个对象(中介对象)封装一系列对象的交互,中介对象使得各个对象之间不需要显式地相互调用,从而使其耦合松散,而且可以独立改变它们之间的交互关系(只需要改动中介者类),如果不使用中介者模式,改动将会很大。
我们来看一下不使用中介者模式的进销存系统和使用中介者模式的进销存系统的区别:
不使用中介者对象,我们可以看到采购管理、销售管理、存货管理类之间都相互依赖,如果改动一个类,我们可能也需要改动其他两个类的一些逻辑;
而使用了中介者对象,我们可以看到与采购管理、销售管理、库存管理这些类相互依赖的只有中介者,实现了松散耦合的目的。
中介者模式优点:减少类间的依赖,把原有的一对多的依赖变成了一对一依赖,同事类只依赖中介者,减少了依赖,同时也降低了类间的耦合;
中介者模式缺点:中介者会很庞大,而且逻辑复杂,同事类越多,则中介者的逻辑就越复杂。
中介者模式的应用场景:机场调度中心、MVC框架、中介服务(联系到现实的黑心中介)。