猿问

不能结合工厂/ DI

假设我有一些Foo类,它具有两个依赖项:an ISerializer<T>和an IFileAccessHandler。


现在,此类还具有其他依赖关系,即功能依赖关系。我不希望任何人在无效状态下实例化此类,因此我还需要在构造函数中传递一个域对象。


但是,当我实际上在创建类Foo时也知道要传递哪个域对象时,如何由IoC处理呢?


我将域对象设置为工厂设置的属性。因此,Factory进行Service Locator调用,以获取具有其依赖关系的正确实例化的“ Foo”类,并进一步使用正确的域对象填充它并返回它。


但这是最好的方法吗?我希望将域对象作为构造函数的一部分,以使其看起来确实需要使用“ Foo”。


有任何想法吗?我在这里想念什么吗?


暮色呼如
浏览 614回答 3
3回答
随时随地看视频慕课网APP
我要回答