Android Kotlin объект против Dagger2 для одноэлементных моделей - PullRequest
0 голосов
/ 16 января 2020

Я видел этот вопрос, но это было с точки зрения тестируемости. В моем случае я вижу Dagger как дополнительную сложность для кода (создайте методы @Provides, вставьте методы, запомните все правильные аннотации). Должен ли я по-прежнему использовать Dagger, если я просто хочу ввести синглеты, такие как SharedPrefUtils? Это действительно быстрее для этого случая?

Ответы [ 2 ]

1 голос
/ 16 января 2020

Dagger не был создан для создания синглетонов, и если создание синглтона является причиной, по которой вы хотите добавить Dagger в свой проект, то это избыточное убийство. Dagger - это структура внедрения зависимостей, которая помогает упростить процесс предоставления и внедрения зависимостей в сложном проекте. @Singleton поможет вам обеспечить создание только одного экземпляра класса, если он удовлетворяет вашим зависимостям, это не альтернатива объекту Kotlin, они могут даже использоваться вместе. Поэтому, как и в других ответах и ​​комментариях, предложите, если у вас небольшой проект, и вы можете использовать простые шаблоны проектирования, такие как Singleton , Factory и Abstract factory pattern .

0 голосов
/ 16 января 2020

Dagger - это структура внедрения зависимостей. Для очень простых приложений вы можете go с ручным впрыском, что сэкономит ваше время, потому что кинжал может быть трудно настроить и работать с самого начала. Однако, если вы планируете производственное приложение, которое имеет очень большой срок службы и будет содержать несколько пользовательских интерфейсов и несколько классов, то вам определенно понадобится интегрированная среда или стратегия внедрения зависимостей.

Существует альтернатива для Kotlin, которая называется Коин. Koin больше похож на сервисный локатор и его легче настроить, чем Dagger, но я предпочту dagger, потому что он выдержал испытание временем.

Вы сами решаете, хотите ли вы использовать автоматическое c внедрение зависимостей или ручное внедрение, поэтому в конце вы взвешиваете свои варианты и видите, что лучше всего подходит для вашего варианта использования.

...