问题描述
我一直在研究并尝试在Android中实现整洁的体系结构,并且一直在致力于一个简单的项目以进行实践。
该应用仅显示受欢迎的电影,电视节目和演员。我想显示的有关actor的信息必须来自对API的两次单独调用。我当前的设计是一个CharacterRepository,它依赖于Remote,Local和Cache数据源。在电影和电视节目的其他存储库中,NetworkDataSource只是将其委托给相关API服务类的单个操作。
我要问的是字符数据源应公开两个操作(getCharacters
,getCharacterDetails
)并将数据组合作为存储库的责任,还是应公开单个{ {1}}操作将来自2个API调用的数据合并到一个对象中?
解决方法
“存储库是唯一依赖于多个其他类的类;在此示例中,存储库依赖于持久性数据模型和远程后端数据源。”
如果您的数据来自多个来源,例如本地,远程和缓存。它们应该在存储库中合并。
但是,如果您有2个API,一个用于获取字符列表,另一个用于获取每个字符的详细信息,则它们可以在数据源中组合,因为它们都是远程源。