在运行时初始化依赖项

安德鲁

我的应用程序包含三个组件,每个组件都有自己的范围:

  1. Singleton-用于整个应用程序的生命周期
  2. 活动-用于活动的生命周期
  3. 用户-用户登录到我们的服务器时使用

我的一些活动在User组件中具有依赖项。但是,我的一些活动在用户未登录时存在,因此在未创建用户组件时也必须存在。

如果我的想法是正确的,那么最好的方法就是定义一个额外的组件,从而给我:

  1. 辛格尔顿
  2. LoggedOutActivity-对于用户注销时存在的活动
  3. 用户
  4. LoggedInActivity-对于仅在用户登录时存在的活动

因此,这意味着我的LoggedOutActivities不依赖于User组件,而LoggedInActivities现在可以依赖于User组件。

创建这个额外的组件并因此分隔我的活动显然会给代码增加一些复杂性,因此在我继续之前,我想澄清一下这听起来像是正确的方法。还是有更好的方法可以让我将所有活动捆绑在一个范围内?

大卫·梅登雅克

这一切都取决于您想做什么以及如何做。

首先,您的方法对我来说似乎还可以。如果您具有不同的依赖关系,则将需要不同的组件。这就是组件的用途,这就是您应该如何使用它们的方式。

就我个人而言,大多数情况下,每项活动都有一个组成部分。然后,我可以使该组件依赖于它需要的任何其他组件。我不会尝试在所有活动中重复使用相同的组件。

如果要重用代码,则可能要重用modules如果你总是提供相同的东西从你的活动(ContextFragmentManager,等),只需创建一个专用模块提供这些。然后,您可以创建全部使用同一模块的多个组件,以帮助提供活动范围的依赖关系-一个活动针对每个活动,一个依赖于用户,另一个依赖于您所描述的应用程序组件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在运行时初始化依赖项

来自分类Dev

匕首2:多模块项目,注入依赖项,但在运行时出现“ lateinit属性存储库尚未初始化”错误

来自分类Dev

在运行时初始化unique_ptr

来自分类Dev

在运行时初始化数组元素

来自分类Dev

C#-在运行时初始化const字段时

来自分类Dev

如何在运行时初始化Peewee SQLite数据库?

来自分类Dev

类内成员初始化是在编译时还是在运行时进行?

来自分类Dev

在运行时初始化HTML模板图像属性

来自分类Dev

Maven在运行时添加依赖项

来自分类Dev

使用Google Guice在运行时注入依赖项

来自分类Dev

使用依赖项注入在运行时确定实现

来自分类Dev

使用Google Guice在运行时注入依赖项

来自分类Dev

改造响应对象中的嵌入式房间实体字段未在运行时初始化

来自分类Dev

为什么在运行时而不是在编译时评估使用constexpr初始化变量

来自分类Dev

如何在运行时使用构造函数初始化类中私有的数组?

来自分类Dev

运行时错误91初始化数组

来自分类Dev

运行时C#线程重新初始化

来自分类Dev

Pystan,运行时错误-初始化失败

来自分类Dev

C#反射-在运行时确定依赖项的位置

来自分类Dev

如何在运行时检查Gradle的依赖项列表?

来自分类Dev

基于已解析的类型,StructureMap在运行时覆盖依赖项

来自分类Dev

为什么不能在运行时范围内添加MongoDB maven依赖项?

来自分类Dev

如何使用简单的注入器在运行时更改依赖项

来自分类Dev

ASP.NET Core依赖项注入:服务在运行时使用Func委托解析

来自分类Dev

温莎城堡在嵌套类中注入依赖项,根接口在运行时解析

来自分类Dev

为什么我会得到警告:(在指向“ ptr”的初始化附近)并且在运行时在指针处赋值时出现分段错误?

来自分类Dev

如何在运行时不使用@PostContruct的情况下使用数据库中的值初始化inputtextfield?

来自分类Dev

为什么我可以在运行时通过 ClassName.__init__(self) 初始化另一个类来扩展一个类

来自分类Dev

对于汇编/C 中的变量,为什么要使用 .data 而不是在 .bss 中保留空间并在运行时初始化?

Related 相关文章

  1. 1

    在运行时初始化依赖项

  2. 2

    匕首2:多模块项目,注入依赖项,但在运行时出现“ lateinit属性存储库尚未初始化”错误

  3. 3

    在运行时初始化unique_ptr

  4. 4

    在运行时初始化数组元素

  5. 5

    C#-在运行时初始化const字段时

  6. 6

    如何在运行时初始化Peewee SQLite数据库?

  7. 7

    类内成员初始化是在编译时还是在运行时进行?

  8. 8

    在运行时初始化HTML模板图像属性

  9. 9

    Maven在运行时添加依赖项

  10. 10

    使用Google Guice在运行时注入依赖项

  11. 11

    使用依赖项注入在运行时确定实现

  12. 12

    使用Google Guice在运行时注入依赖项

  13. 13

    改造响应对象中的嵌入式房间实体字段未在运行时初始化

  14. 14

    为什么在运行时而不是在编译时评估使用constexpr初始化变量

  15. 15

    如何在运行时使用构造函数初始化类中私有的数组?

  16. 16

    运行时错误91初始化数组

  17. 17

    运行时C#线程重新初始化

  18. 18

    Pystan,运行时错误-初始化失败

  19. 19

    C#反射-在运行时确定依赖项的位置

  20. 20

    如何在运行时检查Gradle的依赖项列表?

  21. 21

    基于已解析的类型,StructureMap在运行时覆盖依赖项

  22. 22

    为什么不能在运行时范围内添加MongoDB maven依赖项?

  23. 23

    如何使用简单的注入器在运行时更改依赖项

  24. 24

    ASP.NET Core依赖项注入:服务在运行时使用Func委托解析

  25. 25

    温莎城堡在嵌套类中注入依赖项,根接口在运行时解析

  26. 26

    为什么我会得到警告:(在指向“ ptr”的初始化附近)并且在运行时在指针处赋值时出现分段错误?

  27. 27

    如何在运行时不使用@PostContruct的情况下使用数据库中的值初始化inputtextfield?

  28. 28

    为什么我可以在运行时通过 ClassName.__init__(self) 初始化另一个类来扩展一个类

  29. 29

    对于汇编/C 中的变量,为什么要使用 .data 而不是在 .bss 中保留空间并在运行时初始化?

热门标签

归档