中介者模式(调停者模式)
中介者模式(调停者模式) 通过一个问题引入:进销存管理 有3个模块,采购管理、销售管理、存货管理。 采购管理:根据销售状况进行采购(依赖销售管理);采购时考虑库存容量,修改库存(依赖存货管理) 销售管理:销售时,会修改库存的值(依赖存货管理),如果库存不够,需要通知采购管理模块进行采购(依赖销售管理) 存货管理:库存数量过多时,如果销售状况不佳(依赖销售管理),则降低采购数量(依赖采购管理) 画个类图: 可以看到,这三个类的耦合度很高,而且关系很复杂,在样的情况下,如果要进行修改或者改进,风险是很高的,那 怎么降低类之间的耦合呢? 想象一下网络拓扑结构中的星型结构,计算机间交流的时候,通过交换机进行交流,而不是计算机之间直接相连。如果直接相连,想要进行扩展的时候,比如说要加一台计算机,就需要连接很多的线,但是,使用交换机的情况下只需要把新来的计算机连接到交换机上就可以,至于交换机怎么把消息发给其他计算机,不归计算机管,计算机要做的就是发送数据给交换机,从交换机取数据。 有了交换机的例子,把上面的进销存管理的问题也加上一个“交换机”(中介者),这样,每一个类只依赖中介者,通过中介者,来完成对其它类依赖的逻辑。 中介者模式的定义 用一个中介对象封装一系列的对象交互,中介者使个对象不需要显式地相互作用,从而使其耦合松散,而且可以独立地修改它们之间地交互。 Mediator :