gpt4 book ai didi

dependency-injection - 我应该如何为 DI/IOC 订购我的 ctor 参数?

转载 作者:行者123 更新时间:2023-12-04 08:22:30 25 4
gpt4 key购买 nike

我是一个 DI 新手,如果这是错误的方法或愚蠢的问题,请原谅我。

假设我有一个创建/更新订单的表单,并且我知道它需要检索要显示的产品和客户列表。我想传入它正在编辑的 Order 对象,但我也想将 ProductsService 和 CustomersService 作为依赖项注入(inject)。

因此,我希望我的 IoC 容器(无论我使用哪个容器)来提供服务,但这取决于调用代码来提供要编辑的 Order 对象。

我是否应该将构造函数声明为将 Order 对象作为第一个参数,然后将 ProductsService 和 CustomersService 声明为,例如:

public OrderForm(Order order, ProductsService prodsSvc, CustomersService custsSvc)

...或者依赖项应该先出现,Order 对象最后,例如:
public OrderForm(ProductsService prodsSvc, CustomersService custsSvc, Order order)

有关系吗?这是否取决于我使用的 IoC 容器?或者,还有更好的方法?

最佳答案

马特,您不应该将普通参数与依赖项混合在一起。由于您的对象将在 IoC 容器的内部创建,您将如何指定必要的参数?

混合依赖和普通参数会使你的程序逻辑更加复杂。

在这种情况下,最好声明依赖属性(即从构造函数中删除依赖)或初始化 订购 IoC 构建后的字段 订单 并解决了它的依赖关系(即从构造函数中删除普通参数)。

您也可以声明所有参数,包括 订购 作为依赖。

关于dependency-injection - 我应该如何为 DI/IOC 订购我的 ctor 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/156292/

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