对于安卓:我有
- 具有一些基本功能的核心库:libCore。libCore是用 Java 编写的,包含一些基本的计算函数,不包含任何 Android 相关库,纯 Java。它有一个接口,可将这些功能提供给外环
- 一个库,使用这个核心的是什么:libModule。libModule是用 Kotlin 编写的,是一个 Android 库。libModule 导入 libCore 并将这些基本计算组合到更复杂的函数中。
- 最后是我的 Android 应用程序:myApp。myApp也是一个用 Kotlin 编写的 Android 应用程序,它只导入 libModule 而不是 libCore。在这个级别上,我们想隐藏 libCore 的东西,并希望在这里看到任何 libcore 的东西。
我有一系列从libModule到myApp的回调,同时我将它们组合到了一些 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 的一些信息。所以也许是依赖注入?