iOS Swift Firestore 以及如何避免单例

标签 ios swift mvvm google-cloud-firestore rx-swift

我正在使用 Google FirestoreMVVM 模式。据我所知,由于测试问题而避免使用单例是一个很好的做法。但如果没有它,我该如何正确使用 Firestore 呢?

恐怕每次在 View 模型中创建服务实例时,都会创建对 Firestore 的新订阅。另外,在 MVVM 的情况下,订阅和取消订阅 Firestore database 的正确位置在哪里?它应该发生在 ViewModel 中还是某些服务应该处理这个问题?

最佳答案

单例是反模式并且必须不惜一切代价避免的想法被高估了,恕我直言,您可以使用单例,并且可以使用 DI 和模拟轻松测试它们。

在您的情况下,一个更简单的解决方案是使用单例服务来处理 Firestore 生命周期。

在 ViewModel 中执行此操作将导致代码重复,并且没有任何意义,因为它不会在 ViewModel 作业的 View 和模型之间链接。

关于iOS Swift Firestore 以及如何避免单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54156895/

相关文章:

ios - 仅添加本地化 .strings 文件就足够了吗?

ios - UICollectionView — 缩放单元格以适合屏幕

wpf - 如何将 StackPanel 绑定(bind)到我的 ViewModel?

wpf - 使用 WPF 和 MVVM 处理异常

ios - 哪个切片将被 iPhone 拾取

ios - WatchKit 通知 : view cut off on 38mm Apple Watch?

arrays - 如何将多维数组保存到 UserDefaults

Swift 字符串 vs. 字符串!与字符串?

c# - 使用 MVVM 与组合框绑定(bind) ObservableCollection 或列表数据?

ios - 将行复制到 UITableView 中的另一个部分