我正在使用Google Firestore
和MVVM
模式。据我所知,由于测试问题,避免使用单例是一个好习惯。但是如果没有Firestore
,我应该如何正确使用它呢?
恐怕每次我在视图模型中创建服务实例时,都会创建对Firestore
的新订阅。同样在MVVM
的情况下,订阅和退订Firestore
database
的正确位置在哪里?应该在ViewModel
中发生还是应该由某些服务来处理?
答案 0 :(得分:1)
单例是反模式,必须不惜一切代价避免的想法被高估了恕我直言,您可以使用单例,并且可以使用DI和模拟轻松地对其进行测试。
在您的情况下,一个更简单的解决方案是使用单例服务来处理Firestore生命周期。
在ViewModel中执行此操作将导致代码重复,并且没有意义,因为它不会在视图和模型之间链接哪个ViewModel作业。