我有几个关于存储库模式的问题:
如果我仅使用离线数据库(例如带有 LiveData 的 Room),是否可以使用存储库模式?
如果我的应用程序现在处于离线状态,但将来会连接到远程数据库,我是否应该实现存储库模式,或者稍后执行它不会成为问题?
首先,存储库模式与技术或编程语言无关。
存储库模式对于将持久性问题与应用程序的其余部分分开非常有用。这也有助于提高测试能力,因为现在,您可以模拟存储库并轻松测试其余代码,而无需连接到持久层。
如果我仅使用离线数据库(例如带有 LiveData 的 Room),是否可以使用存储库模式?
我不了解这些技术。但如上所述,存储库的目的是对持久性的无知。无论您的数据存储是什么(内存数据库、RDBMS、Excel/CSS、Web 服务、XML、JSON 或其他任何形式),存储库模式都有助于对其进行抽象。所以,是的,存储库模式在这里很有帮助。
如果我的应用程序现在处于离线状态,但将来会连接到远程数据库,我是否应该实现存储库模式,或者稍后执行它不会成为问题?
事实上,我强烈建议在这里实施存储库。由于忽略了持久性,因此可以基于以下假设轻松设计应用程序的其余部分:数据将以某种方式可用/持久(在离线情况下为本地数据,在未来情况下为服务器数据),甚至无需知道数据是离线还是在线。这样,当将来您从本地存储转移到远程存储时,您的应用程序不会受到任何影响,因为它是针对存储库接口构建的,并且这些接口不会更改。持久性问题现在完全由存储库处理。
我的另一个answer https://stackoverflow.com/a/50357005/5779732可能会有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)