【发布时间】:2010-12-11 05:13:16
【问题描述】:
我在我的代码中使用依赖注入(使用Ninject)并认为我做得很好,直到我遇到一个性能问题,这是由于对 DI 容器适合您的代码的位置的误解而引起的。似乎有很多关于如何使用 DI 框架的信息,但没有太多关于在哪里不使用它们或如何最好地使用它们的信息(至少我能找到)
我想我会写出我认为的一些最佳做法,看看其他人是否同意我的观点,以及人们能提出哪些其他最佳做法。
- 每个应用程序或 AppDomain 使用一个内核
- 仅对长寿命的 Singleton 对象使用 DI 容器,对短寿命的瞬态对象使用工厂(或其他方法)
- 构造函数注入优于属性或字段注入
- 请求对象,不要构建它们
- 其他??指向好的博客全文/文章的指针??
【问题讨论】:
-
什么是内核?这是一个 Ninject 特定的概念吗(在其他任何地方都没有见过)?
-
另外,setter 与构造函数注入是一个宗教论点,因此应该避免。
标签: dependency-injection ioc-container