介绍
中介者模式在生活中的场景是:房东、中介、租客的关系。
各个房东、各个租客,他们之间对放租、租房有各种各样的需求,中介可以把他们的需求都收集起来,这样房东、租客就只要联系中介,就可以完成自己需求的匹配。作为租客,就不需要到处找房子,作为房东,就不需要到处贴招租信息。
我的理解是,当有多个模块,且各个模块之间有比较多的相互依赖关系时,可以用中介者模式来实现模块和模块之间的解耦。
具体到工程中的应用场景,可以是:
一个手环项目中有多个模块:通讯协议、日历、按键、运动模式识别。这几个业务模块之间有各种各样的关系,比如,按按键开始计步,计步数据按日期、时间保存,并通过通讯协议上传给手机等。
模块和模块之间的依赖关系比较多,这时候,我们可以引入一个消息总线的模块。
各个模块将自己的功能的接口方式,映射为消息总线模块的消息,消息总线统一将这些消息送达各个功能模块。如下图所示:
这样操作之后,各个模块不再有复杂的相互依赖关系,他们都只与消息总线发生了依赖。
中介者(消息总线),封装了模块和模块之间的交互,使原有模块的耦合变得松散。且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。
参考文章:http://c.biancheng.net/view/1393.html