Создание синглетонов с использованием объекта инициализатора VSAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Создание синглетонов с использованием объекта инициализатора VS

Сообщение Anonymous »

Эйо, я ищу советы. Мне потребовалось некоторое время, чтобы переделать кусок моего кода, чтобы поддержать инъекцию зависимости, и я нашел библиотеку стартапов Androix.startup. Это казалось отличным решением для регистрации в Синглтоне, так как зависимости и порядок инициализации автоматически управляются.

Код: Выделить всё

// Initializes ExampleLogger.
class ExampleLoggerInitializer : Initializer {
override fun create(context: Context): ExampleLogger {
// WorkManager.getInstance() is non-null only after
// WorkManager is initialized.
return ExampleLogger(WorkManager.getInstance(context))
}

override fun dependencies(): List {
// Defines a dependency on WorkManagerInitializer so it can be
// initialized after WorkManager is initialized.
return listOf(WorkManagerInitializer::class.java)
}
}
< /code>
У меня осталось несколько вопросов. Этот код, кажется, строит объект класса. Как это должно работать, если мои синглтоны уже являются объектом 
s, поскольку объект Классы не позволяют конструкторов?

Код: Выделить всё

object ExampleLogger {
lateinit var someProperty : String
fun initialize(wm : WorkManager) {
// do something
// someProperty = wm.GetSomeProperty()
}
}

class ExampleLoggerInitializer : Initializer {
override fun create(context: Context): ExampleLogger {
ExampleLogger.initialize(WorkManager.getInstance(context))
return ExampleLogger
}
Я думаю, мой вопрос:
Это нормально, что функция Create не возвращает новый объект, а просто инициализированный объект? Я думаю, я волнуюсь, что с помощью объекта нет ничего гарантирующего, что инициализация произошла должным образом, и код может по существу получить доступ к неонициализированному объекту.
Есть ли лучший способ справиться с этим?

Подробнее здесь: https://stackoverflow.com/questions/731 ... -vs-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»