android库项目中的DI

时间:2019-12-17 11:45:23

标签: android dependency-injection koin

我正在从事android库项目,是否可以在android库项目中使用DI?

例如,Koin需要一个Application类

class CustomLibrary : Application() {}

但是在android库项目中使用Application类似乎有些问题

apply plugin: 'com.android.library'

有人在这种项目前面吗?

1 个答案:

答案 0 :(得分:0)

  

是否可以在Android库项目中使用DI

是的,您可以进行依赖注入,尤其是在概念级别。

如果您正在使用通用的可重用库,那么最好不要使用任何特定的DI工具,因为它会使调用者依赖于相同的工具。

要不依赖特定工具,可以使用常规构造函数注入,例如:

  • 在库中声明需要依赖的接口
  • 使库组件将这些接口用作构造函数参数
  • 让调用者提供这些依赖接口的实现

无论是否使用DI工具,只要提供Application依赖项就真正属于应用程序层而不是库。布线顶层依赖项属于顶层。