Android储存库模式

kos*_*sas 5 android repository-pattern android-room android-livedata

关于存储库模式,我有几个问题:

  1. 如果仅使用离线数据库(例如Room with LiveData),那么是否使用存储库模式?

  2. 如果我的应用程序当前处于脱机状态,但将来会连接到远程数据库,那么我应该实现存储库模式,还是以后再做就不会有问题了?

Ami*_*shi 9

首先,存储库模式与技术或编程语言无关。

存储库模式对于将持久性问题与应用程序的其余部分分开很有用。这也有助于提高测试能力,因为现在,您可以模拟存储库并轻松测试其余代码,而无需连接到持久层。

如果仅使用离线数据库(例如Room with LiveData),那么是否使用存储库模式?

我不知道这些技术。但是如上所述,存储库的目的是对持久性的无知。不管您的数据存储区是什么(在内存数据库,RDBMS,Excel / CSS,Web服务,XML,JSON或任何形式中),存储库模式都可以帮助抽象它。是的,存储库模式在这里很有帮助。

如果我的应用程序当前处于脱机状态,但将来会连接到远程数据库,那么我应该实现存储库模式,还是以后再做就不会有问题了?

实际上,我强烈建议您在此处实施存储库。由于忽略了持久性,因此可以基于数据将可用/持久化SOMEHOW(在脱机情况下为本地,在将来为服务器情况下)的假设轻松地设计应用程序的其余部分,甚至不知道数据是脱机还是联机。这样,将来将来从本地存储转移到远程存储时,您的应用程序不会受到任何影响,因为它是针对存储库接口构建的,并且这些接口不会更改。现在,存储库已完全解决了持久性问题。

我的其他答案可能会有所帮助。