gpt4 book ai didi

Android MVP 持久性

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:37 30 4
gpt4 key购买 nike

我正在尝试按照 android 蓝图指南将 MVP 模式实现到我的项目中。目前,我将用户(实体数据)保存在我的 Presenter 中,我真的不喜欢这样做,因为在每次配置更改时,presenter 都会从数据库中获取用户。

我的第一个问题是:

  • 我应该将我的数据保存在存储库中(因为我使用的是 dagger 2 并且存储库位于应用程序范围内)还是应该将其保存在演示者中并以某种方式将其保存在那里。我个人希望将它保留在演示器中,但是,我正在尝试以传统方式学习。

我也知道 android 架构组件,尤其是 ViewModel,但是,我想保留 MVP 模式而不是 MVVM。

我的第二个问题是:

  • 实现持久化后,我应该如何将 LiveData 与 MVP 结合使用?

我已经被这个问题困扰了很长一段时间,很想最终解决它。

干杯

最佳答案

Should I keep my data in the Repository or should I keep it within the presenter and persist it there somehow?

当我开始使用 MVP 时,你有一个有趣的问题。这是我的 2 美分:

关于您提到的两个选项的讨论一直在继续。我个人更喜欢存储库模式。它比 IMO 更干净,并且处理诸如当请求已经在飞行中时屏幕旋转等情况变得更容易。此外,每次设备旋转时,您都不需要从数据库中获取。如果您认为这很昂贵,也许您可​​以在 db 之前创建一个级别的缓存。有一篇非常有趣和详细的文章:Presenters are not for persisting通过 Mike Nakhimovich ,在纽约时报担任 Android 开发人员期间,他开发了一个名为 Store 的库这有助于实现相同的目标。来自文章:

I'd propose using data stores which abstract away data loading. Rather than the presenter needing to cache the data, we can leverage the Repository pattern and create Data Providers/Stores that can get data from the network and cache it for when we need it. For one thing, this approach makes it easier to persist your data. Another advantage is that we have a single source of truth for our data. Finally, we can eliminate things like Interactors and just have your Presenter subscribe to your Stores whenever they need something for a view.

希望对您有所帮助。

关于Android MVP 持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52066288/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com