多个组合根源于应用程序

时间:2013-07-20 11:33:18

标签: unit-testing architecture dependency-injection software-design

我有一种情况,在运行期间我需要通过工厂实例化三个或更多对象a的实例。我正在粘贴快照,它更好地描述了它。

Dependency Graph

有更好的方法吗? 我是否正确地进行依赖注入

由于

2 个答案:

答案 0 :(得分:0)

很难说你是否在没有看到任何代码的情况下正确地进行依赖注入,但看起来你的设计肯定会支持依赖注入(就像任何类/对象层次结构一样)。

为了实现这个设计,我肯定会将对象创建工厂注入到类1的实例中。这意味着您可以通过传入模拟工厂来隔离工厂逻辑来测试类1的逻辑。你的单元测试类1,并声明类1在这些测试中调用你工厂的正确方法。您的设计声明工厂已进入第1类,因此您似乎确实在正确地做事。当然,工厂周围应该有一组单独的单元测试来测试它是否正确地实例化了对象a1,a2和a3。

希望这有帮助。

答案 1 :(得分:0)

使用Abstract Factory for resolving run-time dependencies is a well-known solution

根据具体情况,Metadata Role HintRole Interface Role HintPartial Type Name Role Hint(我最喜欢的)可能会更优雅。的解决方案。