【发布时间】:2026-01-27 07:15:01
【问题描述】:
假设我有一些类 Foo,它有两个依赖项:ISerializer<T> 和 IFileAccessHandler。
现在这个类还有其他的依赖,函数依赖。我不希望任何人在无效状态下实例化此类,因此我还需要在构造函数中传递域对象。
但是,当我也知道在实际创建类 Foo 时要传递什么域对象时,如何让 IoC 处理呢?
我将域对象设置为工厂设置的属性。因此,Factory 调用 Service Locator 以获取正确实例化的“Foo”类及其依赖项,并进一步用正确的域对象填充它并返回它。
但这是最好的方法吗?我宁愿让我的构造函数中包含域对象部分,以使其变得明显,您实际上需要使用“Foo”。
有什么想法吗? 我在这里遗漏了什么吗?
【问题讨论】:
标签: design-patterns dependency-injection