Luh*_*ann 2 .net structuremap dependency-injection ioc-container inversion-of-control
我正在使用structuremap作为IOC容器进行MVC项目.我们正在进行TDD,我想设置我的依赖项,以便它易于使用,并且易于测试.
我应该如何最好地为下面虚构的插图图形设置依赖图?
您是否在控制器上注入了userrepository,并且进一步从身份验证服务中注入?如果图表更深入怎么办?你不会从控制器开始获得很多依赖吗?
如果您依赖于您的applicationcontroller,那么您是否也将它注入到控制器上,然后在基础上注入?
如果我让容器解析图中间某处的实例,我将不得不设置容器进行测试?这是一件好事还是最好避免的?
还有另一种方式,我没有看到?
你的依赖图看起来很好.如图所示,每个类只有一个依赖项
我意识到这是一个简化的视图,并且您的真实生产架构将会复杂得多,但DI(特别是Constructor Injection)的优点在于它违反了单一责任原则这么明显.
一个类开始得到太多依赖项,这表明你应该重构一个聚合服务.
最终的依赖图可能很大,但每个类只依赖于一些抽象,所以从架构的角度来看,这不是问题.
您永远不必在图中间解析实例.解析是你在组合根中做的事情,并且(理论上)只做一次.
在单元测试方面,您根本不必使用DI容器.
| 归档时间: |
|
| 查看次数: |
1265 次 |
| 最近记录: |