如何摆脱回调量,更好的设计?

时间:2019-04-10 12:28:05

标签: design-patterns kotlin dependency-injection dagger-2 kodein

对于Android: 我有

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

enter image description here

我有一堆从 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。那么也许可以进行依赖注入?

0 个答案:

没有答案