概述:
1、中介者模式(Mediator),好比一个大管家,处理家族内部事务。核心:处理内部事务(统一调和)。
用一个中介对象来封装一系列关于对象交互行为。
2、外观模式(Facade),好比国家外交部一把手。核心:处理一切外部事务(统一入口)。
为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。
举例说明:
一、中介者模式
案例一:居委会大妈---boy MM
1、boy 和 MM,在谈恋爱:七大姑,八大姨,你一嘴,她一嘴的分别给Boy和MM出主意,甚至他们之间还相互私下沟通。相互之间错综复杂,显得很乱。怎么能调理清晰一点呢?
2、关于boy和MM谈恋爱这事儿,所有人都不要相互沟通了,都找居委会大妈说。最后居委会大妈统一口径给boy和mm说。
3、这个居委会大妈,在系统中,就是Mediator的角色。核心职责:调理工程内部事务。
二、外观模式
案例一:法庭--律师
1、boy 和 MM,在谈恋爱,出现了各种矛盾,纠纷。你一嘴,他一嘴,相互扯皮,需要一个外部统一调停者。比如:法庭。
2、法庭就属于Facade(集中到一个界面,处理各种纠纷事务),相互之间只需要各自律师调节(这里的律师来调节各自的权益方,律师有点像上面的中介,代理管家了)。
案例二:饭店服务员前台----顾客
1、boy和MM去饭店吃饭,只需要告诉前台服务员吃什么就可以了。boy和MM不需要关心:买菜、洗菜、做菜、刷碗等一些列动作,这些又服务员协调后厨部门完成。
2、这个服务员就属于Mediator。
案例三:国家医保登录界面---各省参保人员
1、目前全国医保尚未统一,各省之间的医保互联互通很是问题,甚至各省内部地市之间医保数据互通不畅(给参保人员就医带来诸多不便)。
2、此时,国家医保(总理全国各省医保事务)的出现就相当于外观模式。
3、国家医保是由各个公司,多个部门联合组建的。
4、国家医保项目一旦建成,那么对外的登录界面,必然是统一的(虽然后台是由各公司、各部门协同写的项目)。此时,这个国家医保的登录入口,就类似于Facade模式。
案例四:微信小程序入口。
总结:
1、两者在管理上很相似。
2、不同的是职责,Mediator是对系统内部组件协调。Facade对系统外部组件的统一调度、协调。
3、理解这种编程思想,从高屋建瓴的设计角度出发,避免出现错综复杂(蜘蛛网一样)的业务关系就可以了。
4、不用在概念上过度解读,区分。无非外交人员,进了外交部就是Facade,回了家就是Mediator。一个为大家,一个为小家。
注:欢迎批评指正,如有不当之处,欢迎吐槽,我们一起强大起来!