iOS Swift Firestore以及如何避免单例

时间:2019-01-12 04:58:35

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

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

恐怕每次我在视图模型中创建服务实例时,都会创建对Firestore的新订阅。同样在MVVM的情况下,订阅和退订Firestore database的正确位置在哪里?应该在ViewModel中发生还是应该由某些服务来处理?

1 个答案:

答案 0 :(得分:1)

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

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

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