场景:在我的应用程序中,我有来自不同数据源的不同类型的模型,例如UserState和Tasks。我为这两个模型创建了两个独立的存储库,即UserStateRepository和TaskRepository。清洁架构/ MVP:对不同模型使用不同的存储库。好吗?
这两个都被注入到TaskPresenter中,根据来自两个存储库的数据显示任务和用户特定的信息。
其实这只是一种情况。我的应用程序有很多这样的模型,例如Dictionary,Resources等。几乎每个视图的演示者都需要注入两个存储库:UserStateRepository和“MetaInformation”存储库。因此,我最终得到至少7个不同的存储库。
PS:我使用Dagger2来注入这些存储库,但只有用户状态存储库是应用程序级别singelton,而其他存储库通常具有活动级别范围。这是因为每次创建活动的新实例时,我都需要刷新其他活动作用域存储库的缓存,但userstate必须保持不变。
问题:这个架构是否真的有意义或者有更好的解决方案?另外如何处理这些知识库的不同生命周期
一般来说,是的。为不同的数据源分开存储库是有意义的。问一下自己是否存在一些“隐藏的依赖”,例如:您总是需要rep1的数据来查询rep2,在这种情况下,考虑创建另一个层,将相关的存储库合并到一个应用程序存储库中,以便于访问和清理码。 – mrsegev