知识卡片

把创建具体对象的依赖尽量往外推

普通读书笔记卡 · 1979.p

内容

只要无法彻底绕开对具体对象的创建,抽象就不能完全解决耦合问题(Client 用 new 创建 Lamp/TVSet 就带来对具体类的依赖)。因此面向对象设计中,需尽量将导致具体依赖的创建对象逻辑往外推,直到调用者必须创建具体对象为止;再把依赖从外部传入,即依赖注入。发散:一个类内部 new 出协作对象,就是把耦合焊死在此处;把 new 上移到边界、通过构造参数/注入传入,是解耦的通用手法。

参考来源

- 位置:《解构领域驱动设计》附录A A.2.2(源文件:_epub-src/OEBPS/034.xhtml) - 结论依据:原文指出抽象无法消除对具体对象创建的依赖,提出把创建逻辑往外推直至调用者的原则。 - 原始内容:需要尽量将导致具体依赖的创建对象逻辑往外推,直到调用者必须创建具体对象为止。