我正在使用 Google Firestore
和 MVVM
模式。据我所知,由于测试问题而避免使用单例是一个很好的做法。但如果没有它,我该如何正确使用 Firestore
呢?
恐怕每次在 View 模型中创建服务实例时,都会创建对 Firestore
的新订阅。另外,在 MVVM
的情况下,订阅和取消订阅 Firestore
database
的正确位置在哪里?它应该发生在 ViewModel
中还是某些服务应该处理这个问题?
最佳答案
单例是反模式并且必须不惜一切代价避免的想法被高估了,恕我直言,您可以使用单例,并且可以使用 DI 和模拟轻松测试它们。
在您的情况下,一个更简单的解决方案是使用单例服务来处理 Firestore 生命周期。
在 ViewModel 中执行此操作将导致代码重复,并且没有任何意义,因为它不会在 ViewModel 作业的 View 和模型之间链接。
关于iOS Swift Firestore 以及如何避免单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54156895/