Android:MVP和SharedReferences中的存储库模式

Android:MVP和SharedReferences中的存储库模式,android,repository-pattern,retrofit2,mvp,android-sharedpreferences,Android,Repository Pattern,Retrofit2,Mvp,Android Sharedpreferences,我正在使用MVP和存储库模式构建一个应用程序。 我有一个本地数据源,它是一个数据库,我在其中存储某些信息。 我有一个远程数据源,在其中使用改造,我提出了一个API请求。此请求有一个@Query,该字符串存储在SharedReferences中。 我曾考虑将SharedReferences作为数据源添加到存储库中,但由于远程数据源应该使用这些SharedReferences,这将是一个不同于远程数据源的数据源,因此我认为这种体系结构不再那么清晰 非常感谢您事先提供的帮助。我认为许多人把存储库的概念

我正在使用MVP和存储库模式构建一个应用程序。 我有一个本地数据源,它是一个数据库,我在其中存储某些信息。 我有一个远程数据源,在其中使用改造,我提出了一个API请求。此请求有一个
@Query
,该字符串存储在SharedReferences中。 我曾考虑将SharedReferences作为数据源添加到存储库中,但由于远程数据源应该使用这些SharedReferences,这将是一个不同于远程数据源的数据源,因此我认为这种体系结构不再那么清晰


非常感谢您事先提供的帮助。

我认为许多人把存储库的概念复杂化了。存储库模式实际上只是门面模式的一种特定类型。它只是一个抽象层,位于真实数据源(模型)和消费者之间

假设我们有一个处理天气数据的系统。在这种情况下,我认为使用三个模态类没有什么错:

  • WeatherHttp
  • WeatherDb
  • WeatherPrefs
这些都可以是通过构造函数注入的存储库类的成员。这三个类都隐藏在单个存储库类后面,不让使用者(UI)看到:

  • WeatherRepository
其中可能有一个公共方法:

public void getWeatherForecasts(Callback<List<Forecast> forecastCallback);

public void getWeatherForecasts(callback)感谢您的回复,我将更新我的帖子并添加一些代码。
public Observable<List<Forecast>> getWeatherForecasts();