如何处理匕首注入像这样设置的应用程序:
Root that creates:
|- LevelOneA
| |- LevelTwoAA
| |- LevelTwoAB
| L ....
|
|- LevelOneB
| |- LevelTwoBA
| |- LevelTwoBB
| L ....
|
L ...
每个类都有自己的依赖关系,并创建具有自己的依赖关系的对象,这些依赖关系反过来创建具有自己的依赖关系的对象,无限制等等。本质上,每个级别的每个对象都需要对依赖关系图有所了解/注射器使他们可以注射自己并确保他们的孩子可以注射。
最基本的解决方案似乎是通过每个对象的构造函数传入注入器(这样每个对象自身注入,并将注入器传递给它的子进程注入自己)。但是,这似乎不太合适?
此外,这个注入器知道如何注入所有内容,因此在测试和创建模拟时,即使我正在测试一个不相关的对象,我也必须模拟出LevelTenXYZ的所有依赖项。