我对存储库模式有几个问题:
如果我只使用离线数据库,例如Room with LiveData,是否使用了存储库模式?
如果我的应用程序现在处于脱机状态,但将来会连接到远程数据库,我是否应该实现存储库模式,否则以后不会出现问题?
答案 0 :(得分:5)
首先,Repository模式与技术或编程语言无关。
存储库模式对于将持久性问题与应用程序的其余部分分开很有用。这也有助于提高测试能力,因为现在,您可以轻松地模拟存储库并轻松测试其余代码,而无需连接到持久层。
如果我只使用离线数据库,例如Room with LiveData有没有使用Repository模式?
我不了解这些技术。但如上所述,存储库的目的是不了解持久性。无论您的数据存储是什么(在内存数据库,RDBMS,Excel / CSS,Web服务,XML,JSON或其他),存储库模式有助于抽象它。所以是的,存储库模式在这里很有用。
如果我的应用程序现在处于脱机状态,但将来是否会连接到远程数据库,我是否应该实现存储库模式,否则以后不会出现问题?
事实上,我强烈建议您在此处实施存储库。由于忽略了持久性,因此可以根据数据可用/持久化的假设轻松设计应用程序的其余部分。一般情况下(在离线情况下为本地,在未来情况下为服务器),甚至不知道它是脱机还是在线。这样,当您将来从本地存储转移到远程存储时,您的应用程序不会以任何方式影响,因为它是针对存储库接口构建的,并且这些接口不会更改。现在,Repository完全处理持久性问题。
我的其他answer可能会有帮助。
答案 1 :(得分:1)
IMO
是的,它有助于抽象数据的存储方式,因此您可以灵活地响应已知和未知的变化。
需要重构。我认为这取决于您的应用程序的详细信息以及它的大小。