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