知识卡片
子系统对门面无感知同事类对中介者了如指掌
内容
[[门面模式纯封装隔离中介者模式承担业务调和逻辑]]还体现在”谁知道谁存在”:门面 模式中子系统完全不知道门面存在,内部类互相协作与门面无关;中介者模式恰相反,每个同事 类构造时必须持有中介者引用,业务方法内部直接调用中介者,从设计之初就主动依赖它协作。 发散:这也解释了为何中介者模式改造现有代码成本更高——门面可后加,中介者需同事类主动 配合改造。
参考来源
- 位置:《设计模式之禅(第2版)》第33章《跨战区PK》33.2.3节(源文件:_epub-src/text/part0148.html)
- 结论依据:原文总结"对门面模式来说,子系统不知道有门面存在,而对中介者来说,每个同事类都知道中介者存在,因为要依靠中介者调和同事之间的关系,它们对中介者非常了解",并可从代码中`Position`、`Salary`、`Tax`构造函数强制传入`AbsMediator`引用得到印证。
- 原始内容:对门面模式来说,子系统不知道有门面存在,而对中介者来说,每个同事类都知道中介者存在,因为要依靠中介者调和同事之间的关系,它们对中介者非常了解。