iOS Swift Firestore и как избежать синглтона - PullRequest
0 голосов
/ 12 января 2019

Я использую Google Firestore и MVVM шаблон. Как я знаю, хорошей практикой является избегать использования синглтона из-за проблем с тестированием. Но как правильно работать с Firestore без него?

Я боюсь, что каждый раз, когда я создаю экземпляр службы в моей модели просмотра, будет создаваться новая подписка на Firestore. Также в случае MVVM, где находится правильное место для подписки и отписки на Firestore database? Должно ли это произойти в ViewModel или какой-то сервис должен справиться с этим?

1 Ответ

0 голосов
/ 12 января 2019

Идея о том, что синглтоны являются анти-паттернами и их следует избегать любой ценой, переоценена. ИМХО, вы можете использовать синглтоны и легко тестировать их, используя DI и макеты.

В вашем случае гораздо более простым решением является использование одноэлементного сервиса для управления жизненным циклом Firestore.

Выполнение этого во ViewModel приведет к дублированию кода и не имеет смысла, поскольку не связывает вид и модель с заданием ViewModel.

...