知识卡片
同事类构造函数注入而中介者用setter注入的不对称设计
内容
[[中介者模式的定义与自发行为/依赖方法的区分]]中,同事类通过构造函数强制传入中介者, 中介者持有同事类引用则用setter注入,两者故意不对称:同事类离开中介者无法完成依赖方法, 是强依赖;中介者未必要管理全部同事类,是弱依赖。发散:依赖的”强制程度”应决定注入方式—— 构造函数注入适合”没有它就不完整”的强依赖,setter适合弱依赖。
参考来源
- 位置:《设计模式之禅(第2版)》第14章《中介者模式》(源文件:_epub-src/text/part0063.html)
- 结论依据:原文明确解释这一设计差异的原因:"为什么同事类要使用构造函数注入中介者,而中介者使用getter/setter方式注入同事类呢?这是因为同事类必须有中介者,而中介者却可以只有部分同事类。"
- 原始内容:为什么同事类要使用构造函数注入中介者,而中介者使用getter/setter方式注入同事类呢?这是因为同事类必须有中介者,而中介者却可以只有部分同事类。