我正在尝试按照 android 蓝图指南将 MVP 模式实施到我的项目中。目前,我在 Presenter 中保存用户(实体数据),我真的不喜欢它,因为在每次配置更改时,Presenter 都会从数据库中获取用户。
我的第一个问题是:
我也知道 android 架构组件,尤其是 ViewModel,但是,我想保留 MVP 模式而不是 MVVM。
我的第二个问题是:
我已经被这个问题困住了很长一段时间,很想最终解决它。
干杯
我应该将我的数据保存在 Repository 中还是应该将它保存在 Presenter 中并以某种方式将其保存在那里?
你有一个有趣的问题,当我开始与 MVP 合作时,我也曾遇到过这个问题。这是我的 2 美分:
一直在继续讨论你提到的两个选项。我个人更喜欢存储库模式。它更干净 IMO,并且当请求已经在飞行时处理屏幕旋转等情况变得更容易。此外,每次设备旋转时,您都不需要从数据库中获取。如果您认为这很昂贵,也许您可以在 db 之前创建一个缓存级别。有一个很有趣的和详细的文章:主讲人是不是坚持用麦克Nakhimovich,谁在他的时间作为纽约时报的Android开发者在调用的库工作商店,这有助于实现相同。从文章:
我建议使用抽象掉数据加载的数据存储。我们可以利用 Repository 模式并创建数据提供者/存储来从网络获取数据并在需要时缓存它,而不是展示者需要缓存数据。一方面,这种方法可以更轻松地保留数据。另一个优势是我们的数据有单一的真实来源。最后,我们可以消除交互器之类的东西,只需让您的演示者在需要查看内容时订阅您的商店。
希望这个对你有帮助。