我正在学习设计模式及其周围的事物(尤其是SOLID和Dependency Inversion原理),看起来好像在失去一些东西:
遵循DIP规则,通过不在类中创建对象(composition),而是将对象引用/指针发送到类构造函数(aggregation),我应该能够使类不那么脆弱。但这意味着我必须在其他地方创建一个实例:因此带有聚合的一类越灵活,另一类就越脆弱。
请向我解释我哪里错了。
您只需要遵循该想法就可以得出合理的结论。是的,您必须将实例制作到其他位置,但这可能不只是在类之上的类中进行,它总是需要不断推出,直到仅在应用程序的最外层创建对象为止。
理想情况下,您可以在一个地方创建所有对象,这称为合成根(例外是从工厂创建的对象,但是工厂是在合成根中创建的)。确切的位置取决于您所构建的应用程序的类型。
这个地方可能最终变得“脆弱”,但是您只有一个地方可以更改事物,以便能够重新配置您的应用程序,然后所有其他类都是可测试和可配置的。
看到这个出色的答案(上面引用)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句