中介者模式和外观模式的区别

外观模式是整合所有的子系统,提供出功能性的接口来统一给外界访问,减少依赖能实现这个功能的子系统。各个子系统之间没有关系,统一为外观类服务,外观类不需要给子系统服务。

中介者模式就比较惨一点了,同样是拥有很多的子系统,减少的是这些子系统之间的依赖关系,每次的交互都交给中介,中介再去找相应的目标处理,处理完了还要由中介告诉要求方完成了。中介者为所有的子系统服务,每个子系统可能是通知方,也可能是被通知方,是双向的,都是经过中介者来操作。

还有一点,外观模式是减少第三方对子系统的依赖,第三方只需要依赖外观类,就能完成需要依赖很多子系统才能完成的功能。而中介者模式是减轻各个子系统之间的依赖,例如说游戏模块战斗被攻击后,需要告诉动画模块播放受伤动画,告诉声音模块播放受伤声音,这就依赖了这两个模块,而用中介者后,只要告诉中介,受伤了,其他的就不用管了。


首页 我的博客
粤ICP备17103704号