微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

依赖注入 – 依赖注入最佳实践

我在我的代码中使用依赖注入(使用 Ninject)并且认为我做得很好,直到我遇到由于误解DI容器适合代码的地方而导致的性能问题.似乎有很多关于如何使用DI框架的信息,但没有太多关于不使用它们的地方或如何最好地使用它们(至少我能找到)

我想我会写出我认为最好的做法,看看其他人是否同意我以及人们可以提出的其他最佳做法.

>每个应用程序或AppDomain使用一个内核
>仅将DI容器用于长寿命Singleton对象,将工厂(或其他方法)用于短期瞬态对象)
>首选构造函数注入属性或场注入
>请求对象,不要构建它们
>其他??指向好博客文章/文章

这是最重要的一个简短列表(其中一些也出现在OP中):

>代码应该不知道使用哪个DI容器(如果有的话)
>在应用程序的根目录中组合整个应用程序(组合根)
>偏向构造函数注入

我不能说我同意你关于Singleton vs. Transient对象的观点. DI的重点是外部机制(例如DI容器)确定任何给定依赖关系的生命周期,而不是其他人,因此您需要让所有依赖关系由DI容器管理.

原文地址:https://www.jb51.cc/javaschema/281694.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐