gpt4 book ai didi

c++ - 依赖倒置原理 : trying to understand

转载 作者:太空狗 更新时间:2023-10-29 20:39:11 24 4
gpt4 key购买 nike

我正在学习设计模式及其相关内容(特别是 SOLIDDependency inversion principle),看起来我正在失去一些东西:

遵循 DIP 规则,我应该能够通过不在类中创建对象(组合)而是将对象引用/指针发送到类构造函数(聚合)。但这意味着我必须在其他地方创建一个实例:所以一个具有聚合的类越灵活,另一个就越脆弱。

请解释我哪里错了。

最佳答案

您只需要遵循这个想法,直到得出合乎逻辑的结论。是的,您必须在其他地方制作实例,但这可能不仅仅是在您的类(class)之上一层的类(class)中,它一直需要被推出和推出,直到对象仅在您的应用程序的最外层创建。

理想情况下,您可以在一个地方创建所有对象,这称为 composition root (异常(exception)是从工厂创建的对象,但工厂是在组合根中创建的)。具体位置取决于您构建的应用类型。

  • 在桌面应用程序中,这将在 Main 方法中(或非常接近它)
  • 在 ASP.NET(包括 MVC)应用程序中,这将在 Global.asax 中
  • 在 WCF 中,这将在 ServiceHostFactory 中
  • 等等

这个地方可能最终变得“脆弱”,但您只有一个地方可以更改内容以便能够重新配置您的应用程序,然后所有其他类都是可测试和可配置的。

参见 this excellent answer (上面引用)

关于c++ - 依赖倒置原理 : trying to understand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28706226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com