Android 存储库模式
Android Repository pattern
我有几个关于存储库模式的问题:
如果我只使用离线数据库,例如带 LiveData 的 Room,是否可以使用 Repository 模式?
如果我的应用程序现在处于离线状态,但将来会连接到远程数据库,我是否应该实施存储库模式,或者以后再做就不成问题了?
海事组织
是的,抽象数据的存储方式很有用,因此您可以灵活地响应已知和未知的变化。
- 测试中。模拟
- 替代构建,例如 Android 始终从网络获取数据的即时构建?
- 其他数据库库。例如,假设您希望您的功能使用 Kotlin Native 跨平台并且需要替代数据库库
需要重构。我认为这取决于您的应用程序的详细信息及其大小。
首先,存储库模式与技术或编程语言无关。
存储库模式有助于将持久性问题与应用程序的其余部分分开。这也有助于提高测试能力,因为现在,您可以模拟存储库并轻松测试其余代码,而无需连接到持久层。
If I'm using only offline database for example Room with LiveData is there any use of Repository pattern?
我不知道这些技术。但是如上所述,存储库的目的是对持久性的无知。无论您的数据存储是什么(内存数据库、RDBMS、Excel/CSS、Web 服务、XML、JSON 或其他),存储库模式都有助于对其进行抽象。所以是的,存储库模式在这里很有用。
If my app is offline right now, but will be connected to remote db in the future should I implement repository pattern or it's not going to be a problem to do it later?
事实上,我强烈建议在这里实施存储库。由于持久性被忽略,您的应用程序的其余部分可以很容易地设计,假设数据将是 available/persisted 某种方式(在离线的情况下是本地的,在未来的情况下是服务器的)甚至不知道它是离线还是在线。这样,当您将来从本地存储转移到远程存储时,您的应用程序不会受到任何影响,因为它是针对存储库接口构建的,并且这些接口不会更改。持久性问题现在完全由 Repository 处理。
我的其他 answer 可能会有帮助。
我有几个关于存储库模式的问题:
如果我只使用离线数据库,例如带 LiveData 的 Room,是否可以使用 Repository 模式?
如果我的应用程序现在处于离线状态,但将来会连接到远程数据库,我是否应该实施存储库模式,或者以后再做就不成问题了?
海事组织
是的,抽象数据的存储方式很有用,因此您可以灵活地响应已知和未知的变化。
- 测试中。模拟
- 替代构建,例如 Android 始终从网络获取数据的即时构建?
- 其他数据库库。例如,假设您希望您的功能使用 Kotlin Native 跨平台并且需要替代数据库库
需要重构。我认为这取决于您的应用程序的详细信息及其大小。
首先,存储库模式与技术或编程语言无关。
存储库模式有助于将持久性问题与应用程序的其余部分分开。这也有助于提高测试能力,因为现在,您可以模拟存储库并轻松测试其余代码,而无需连接到持久层。
If I'm using only offline database for example Room with LiveData is there any use of Repository pattern?
我不知道这些技术。但是如上所述,存储库的目的是对持久性的无知。无论您的数据存储是什么(内存数据库、RDBMS、Excel/CSS、Web 服务、XML、JSON 或其他),存储库模式都有助于对其进行抽象。所以是的,存储库模式在这里很有用。
If my app is offline right now, but will be connected to remote db in the future should I implement repository pattern or it's not going to be a problem to do it later?
事实上,我强烈建议在这里实施存储库。由于持久性被忽略,您的应用程序的其余部分可以很容易地设计,假设数据将是 available/persisted 某种方式(在离线的情况下是本地的,在未来的情况下是服务器的)甚至不知道它是离线还是在线。这样,当您将来从本地存储转移到远程存储时,您的应用程序不会受到任何影响,因为它是针对存储库接口构建的,并且这些接口不会更改。持久性问题现在完全由 Repository 处理。
我的其他 answer 可能会有帮助。