首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用依赖注入注入公共类是一种好方法吗?

用依赖注入注入公共类是一种好方法吗?
EN

Stack Overflow用户
提问于 2020-10-10 08:17:46
回答 2查看 420关注 0票数 2

inject viewModelsrepositoriesfragmentsUtils和..。但是,使用inject classdependency injection KoinDagger-hilt是一种好方法吗?

假设我们希望在StringBuilder() fragment中使用

第一方法:

我们可以inject

代码语言:javascript
复制
val otherModule= module {
   single { StringBuilder() }
}

并在fragment中这样使用:

代码语言:javascript
复制
class Fragment : BaseFragment(){
  private val mPassword : StringBuilder by inject()
}

第二种方法:

我们可以在没有new的情况下创建instance

代码语言:javascript
复制
class Fragment : BaseFragment(){
    private var mPassword = StringBuilder()
 }

,我的问题是,第一种方法是我们常用的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-10 09:07:28

我得说这要看情况。Di背后的主要目标/概念是实现S.O.L.I.D的firth原则,或者如freecodecamp.org所说:

这是S.O.L.I.D的第五个原则--鲍勃叔叔提出的面向对象编程和设计的五个基本原则--它规定类应该依赖抽象而不是具体(简单地说,硬编码)。

根据这些原则,一个类应该专注于履行自己的责任,而不是创建完成这些职责所需的对象。这就是依赖注入的作用所在:它为类提供所需的对象。

另一个很好的答案是here,因为在不使用依赖注入时已经讨论过了。

现在我的观点是:如果可能的话,尝试注入那些您必须经常使用的依赖项,如果可能的话,通过构造函数注入注入它们。这样,您就可以很容易地看到类使用了哪些依赖项。尽量不要注入曾经使用过的类或公共语言类。

票数 2
EN

Stack Overflow用户

发布于 2020-10-10 09:05:41

不,你根本不会注入公共语言类。这是没有好处的。当类需要额外的依赖时,我们就注入它们,而我们不想自己创建这些依赖项,所以我们让DI框架创建它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64291385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档