gpt4 book ai didi

c# - 如何避免依赖注入(inject)构造函数的疯狂?

转载 作者:行者123 更新时间:2023-12-03 21:30:34 25 4
gpt4 key购买 nike

我发现我的构造函数开始看起来像这样:

public MyClass(Container con, SomeClass1 obj1, SomeClass2, obj2.... )

随着参数列表的不断增加。既然“Container”是我的依赖注入(inject)容器,为什么我不能这样做:
public MyClass(Container con)

每个类(class)?有什么缺点?如果我这样做,感觉就像我在使用美化的静态。请分享您对 IoC 和依赖注入(inject)疯狂的看法。

最佳答案

你是对的,如果你将容器用作服务定位器,它或多或少是一个美化的静态工厂。有很多原因I consider this an anti-pattern (另见我书中的 this excerpt)。
构造函数注入(inject)的一大好处是它违反了Single Responsibility Principle。非常明显。
当这种情况发生时,是时候 refactor to Facade Services .总之,创造一个新的,更多粗粒度隐藏您当前需要的部分或全部细粒度依赖项之间的交互的接口(interface)。

关于c# - 如何避免依赖注入(inject)构造函数的疯狂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43118544/

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