知识卡片
门面模式纯封装隔离中介者模式承担业务调和逻辑
内容
门面模式和中介者模式都在多组件与外部访问者之间加一层,但定位不同。门面模式对 子系统不增功能,子系统脱离门面照样独立运行,门面只转发请求;中介者模式把同事类间原本 两两交互的业务逻辑真正搬进中介者,中介者承担实质业务判断,同事类脱离中介者无法协作。 发散:一句话区分——门面模式是零逻辑访问快捷方式,中介者模式是把耦合关系转移固化为 一段业务逻辑。
参考来源
- 位置:《设计模式之禅(第2版)》第33章《跨战区PK》33.2节(源文件:_epub-src/text/part0148.html)
- 结论依据:原文对比"门面模式只是增加了一个门面,它对子系统来说没有增加任何的功能,子系统若脱离门面模式是完全可以独立运行的。而中介者模式则增加了业务功能,它把各个同事类中的原有耦合关系移植到了中介者,同事类不可能脱离中介者而独立存在",并强调门面模式"是一种简单的封装,所有的请求处理都委托给子系统完成,而中介者模式则需要有一个中心,由中心协调同事类完成,并且中心本身也完成部分业务"。
- 原始内容:门面模式只是增加了一个门面,它对子系统来说没有增加任何的功能,子系统若脱离门面模式是完全可以独立运行的。而中介者模式则增加了业务功能,它把各个同事类中的原有耦合关系移植到了中介者,同事类不可能脱离中介者而独立存在……门面模式是一种简单的封装,所有的请求处理都委托给子系统完成,而中介者模式则需要有一个中心,由中心协调同事类完成,并且中心本身也完成部分业务,它属于更进一步的业务功能封装。