1

对于安卓:我有

  • 具有一些基本功能的核心库:libCorelibCore是用 Java 编写的,包含一些基本的计算函数,不包含任何 Android 相关库,纯 Java。它有一个接口,可将这些功能提供给外环
  • 一个库,使用这个核心的是什么:libModulelibModule是用 Kotlin 编写的,是一个 Android 库。libModule 导入 libCore 并将这些基本计算组合到更复杂的函数中。
  • 最后是我的 Android 应用程序:myAppmyApp也是一个用 Kotlin 编写的 Android 应用程序,它只导入 libModule 而不是 libCore。在这个级别上,我们想隐藏 libCore 的东西,并希望在这里看到任何 libcore 的东西。

在此处输入图像描述

我有一系列从libModulemyApp的回调,同时我将它们组合到了一些 Wrapper 类。例子:

class LoginCallbackWrapper {
 internal lateinit var authenticationCallback : AuthenticationCallback
 internal lateinit var loginCallback : LoginCallback
 internal lateinit var andDozenOtherCallback: DozenOtherCallbacks

 val isAuthInitialized = fun(): Boolean{
  return ::authenticationCallback.isInitialized
 }
 //.. also for the other callbacks

}

此外,我还有其他带有组合回调的 CallbackWrapper。

我希望这些回调数量有另一种更优雅的方式?任何设计模式,另一个库.. 我听说过有关 Dagger2 的一些信息。所以也许是依赖注入?

4

0 回答 0