在运行时初始化依赖项

3
我的应用程序有三个组件,每个组件都有自己的范围:
  1. Singleton - 用于整个应用程序的生命周期
  2. Activity - 用于活动的生命周期
  3. User - 在用户登录我们的服务器时使用
我的一些活动在用户组件内有依赖关系。但是当用户没有登录时,我的活动存在,因此必须存在于未创建用户组件时。
如果我的想法正确,最好的方法是定义一个额外的组件,这样我就有了:
  1. Singleton
  2. LoggedOutActivity - 存在于用户退出登录时的活动
  3. User
  4. LoggedInActivity - 仅在用户登录时存在的活动
这意味着我的LoggedOutActivities没有来自User组件的依赖项,而LoggedInActivities现在可以依赖于User组件。
创建这个额外的组件并将我的活动分离出来显然会给代码带来一些复杂性,因此在继续之前,我想澄清一下这是否是正确的方法。或者是否有更好的方法可以让我将所有活动绑定在单个范围内?
1个回答

1

这完全取决于您想做什么以及如何做。

首先,您的方法对我来说是可以的。如果您有不同的依赖项,您将需要不同的组件。这就是组件的作用,也是您应该使用它们的方式。

就我个人而言,我通常为每个活动创建一个组件。然后我可以让这个组件依赖于它所需的任何其他组件。我不尝试重复使用相同的组件来处理所有我的活动。

如果您想要重复使用代码,您可能想要重复使用模块。如果您始终从您的活动提供相同的内容(例如ContextFragmentManager等),只需创建一个专用模块来提供这些内容。然后,您可以创建多个组件,它们都使用相同的模块来帮助提供活动范围的依赖项 - 每个活动一个,或者像您描述的那样,一个依赖于用户,另一个依赖于应用程序组件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接