【发布时间】:2018-07-08 02:00:30
【问题描述】:
我有一个问题需要回答。
我第一次尝试实现存储库模式,我在项目的大部分部分都成功实现了它,但现在我不知道如何解决这个问题。
基本上我需要更新用户的图片,所以在我的存储库中我有一个
updatePicture(userId: Int, picture: File)
接口,对于存储库实现和远程数据源实现来说一切正常,但是你知道本地数据源不使用文件来表示用户的图片,它使用 url 字符串,所以在接口应该是本地数据源
updatePicture(userId: Int, picture: String)
但是由于存储库的概念使本地数据源实现与远程数据源相同的接口,我不知道如何解决这个问题。
感谢您的帮助
【问题讨论】:
-
抱歉,我需要更多信息。我知道您有一个存储库接口和两个具体实现,一个用于执行网络请求并更新服务器端中的图片,另一个存储库使用您的本地缓存(我假设使用数据库、Room、ORMlite、Real 等)像那样)。我明白你在说什么,但问题是当你发出请求时,你应该在存储库实现内部更新你的应用程序缓存。请指定您调用这两个
updatePicture方法的流程。 -
您可以拥有您的缓存存储库、您的网络存储库和一个复合存储库(其中包含这些存储库的两个实例),然后在那里执行网络请求并更新您的应用程序的缓存。但我需要知道你是如何调用
updatePicture方法的。从网络存储库中点击updatePicture方法后,您是否尝试从缓存存储库中调用updatePicture方法?
标签: android architecture repository-pattern