ret*_*ent 4 dependency-injection anti-patterns ioc-container inversion-of-control service-locator
假设我有一个BaseForm依赖于一个ILogger或IResourceManager或类似的东西.目前,它使用服务定位器解决了所需服务的正确实现,我知道这是一种反模式.
BaseForm在容器中注册my (及其'派生类型)才能创建具有已解析依赖项的实例?这不是一切都复杂化吗?很抱歉一次提出很多问题.我已经阅读了以下SO问题和许多其他问题,但阅读它们只会增加我的困惑:
如果可能的话,你应该总是使用依赖注入,因为它有一些明确的力量.但是,使用UI技术,并不总是可以使用依赖注入,因为某些UI技术(例如.NET空间,Win Forms和Web窗体)只允许您的UI类(表单,页面,控件等)默认构造函数.在这种情况下,你将不得不回到其他东西,即服务定位器.
在这种情况下,我可以给你以下建议:
除了单元测试之外,还有另外两个反对使用服务定位器的重要论据,由Mark Seemann在其着名的博客文章中提供服务定位器是一个反模式:
| 归档时间: |
|
| 查看次数: |
2005 次 |
| 最近记录: |