Как избавиться от суммы обратного звонка, улучшить дизайн? - PullRequest
1 голос
/ 10 апреля 2019

Для Android: у меня есть

  • базовая библиотека с некоторыми основными функциями: libCore . libCore написан на Java и содержит некоторые базовые функции с вычислениями, не содержит никаких связанных с Android библиотек, чисто Java.Он имеет интерфейс, предлагающий эти функции для внешнего кольца
  • библиотеки, которая подходит для этого ядра: libModule . libModule написан на Kotlin и является библиотекой Android.libModule импортирует libCore и объединяет эти основные вычисления с более сложными функциями.
  • наконец, мое приложение для Android: myApp . myApp - это приложение для Android, написанное также на Kotlin, оно просто импортирует 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.Так может с внедрением зависимости?

...