Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 如何使用DI管理依赖于成员值的松散耦合对象关联?_Oop_Dependency Injection - Fatal编程技术网

Oop 如何使用DI管理依赖于成员值的松散耦合对象关联?

Oop 如何使用DI管理依赖于成员值的松散耦合对象关联?,oop,dependency-injection,Oop,Dependency Injection,我正在寻找一个DI解决方案,以帮助我管理对象关联,以便根据同一对象中的其他成员值设置对象关联 因此,给定一个对象关联,其中Employee对象具有AddressId属性和相关的Address association属性,我如何以允许每个类保持松散耦合的方式从外部管理这些关联 我的第一次尝试是使用IoC容器。在意识到需要扩展容器以便它能够基于存储在IoC配置中的决策逻辑解析类型实例之后,我停止了使用这种方法——这似乎是个坏主意。(将容器注入到存储库中会起作用,但会破坏我的合成根,因此这也不在表中

我正在寻找一个DI解决方案,以帮助我管理对象关联,以便根据同一对象中的其他成员值设置对象关联

因此,给定一个对象关联,其中Employee对象具有AddressId属性和相关的Address association属性,我如何以允许每个类保持松散耦合的方式从外部管理这些关联

我的第一次尝试是使用IoC容器。在意识到需要扩展容器以便它能够基于存储在IoC配置中的决策逻辑解析类型实例之后,我停止了使用这种方法——这似乎是个坏主意。(将容器注入到存储库中会起作用,但会破坏我的合成根,因此这也不在表中。)话虽如此,我认为这不是IoC容器的工作——请说服我

我做了一些研究,发现了安迪·布尔卡写的一篇论文。Bulka的设计需要一个中介类来管理这些关联。我不确定这是否是最好的方法


我相信社区里有人曾经解决过这个问题。与此设计问题相关的DI最佳实践是什么?

如果您谈论的是域对象之间的关联,ORM中内置了一个关系管理器,它将按照您描述的方式为您构建一个对象树。有什么原因不能使用这种现成的解决方案吗?+1绝对正确。DI并不是在客户和AddressRelated等实体之间建立关系:@Steve Wilkes。不幸的是,我从几个不同的来源获取数据。话虽如此,我还是在为我的申请遵循DDD结构。@Steven:谢谢你仍然试图理解Greg Young的DDDD论文的含义