数据源 class 是否应该负责合并来自 2 API 调用的数据?
Should a datasource class be responsible for merging data from 2 API calls?
我一直在研究并尝试在 Android 中实现干净的架构,并且一直在从事一个简单的项目以进行一些实践。
该应用仅显示热门电影、电视节目和演员。我想显示的有关演员的信息必须来自对 API 的两次单独调用。我当前的设计是一个依赖于远程、本地和缓存数据源的 CharacterRepository。在电影和电视节目的其他存储库中,NetworkDataSource 仅委托相关 API 服务的单个操作 class.
我想问的是,字符数据源应该公开两个操作(getCharacters
、getCharacterDetails
)并将数据组合作为存储库的责任,还是应该公开一个将来自 2 个 API 调用的数据合并到单个对象中的单个 getCharacters
操作?
“存储库是唯一依赖于多个其他 class 的 class;在此示例中,存储库依赖于持久数据模型和远程后端数据源。”
如果您的数据来自多个来源,例如本地、远程和缓存。它们应该合并到存储库中。
但是,如果您有 2 个 API,一个用于获取字符列表,另一个用于获取每个字符的详细信息,则它们可以在数据源中组合,因为两者都是远程源。
我一直在研究并尝试在 Android 中实现干净的架构,并且一直在从事一个简单的项目以进行一些实践。
该应用仅显示热门电影、电视节目和演员。我想显示的有关演员的信息必须来自对 API 的两次单独调用。我当前的设计是一个依赖于远程、本地和缓存数据源的 CharacterRepository。在电影和电视节目的其他存储库中,NetworkDataSource 仅委托相关 API 服务的单个操作 class.
我想问的是,字符数据源应该公开两个操作(getCharacters
、getCharacterDetails
)并将数据组合作为存储库的责任,还是应该公开一个将来自 2 个 API 调用的数据合并到单个对象中的单个 getCharacters
操作?
“存储库是唯一依赖于多个其他 class 的 class;在此示例中,存储库依赖于持久数据模型和远程后端数据源。”
如果您的数据来自多个来源,例如本地、远程和缓存。它们应该合并到存储库中。
但是,如果您有 2 个 API,一个用于获取字符列表,另一个用于获取每个字符的详细信息,则它们可以在数据源中组合,因为两者都是远程源。