当前位置: 首页 > 知识库问答 >
问题:

Android存储库模式

戚成礼
2023-03-14

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

>

  • 如果我只使用离线数据库(例如Room with LiveData),是否使用存储库模式

    如果我的应用程序现在离线,但将来会连接到远程数据库,那么我应该实现存储库模式还是以后再做就不会有问题了?

  • 共有1个答案

    吕晟睿
    2023-03-14

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

    存储库模式对于将持久性关注点与应用程序的其余部分分离很有用。这也有助于提高测试能力,因为现在,您可以很容易地模拟存储库和测试代码的其余部分,而不需要连接到持久层。

    如果我只使用离线数据库,例如Room with LiveData,是否使用存储库模式?

    事实上,我将强烈建议在这里实现存储库。由于持久性被忽略,因此可以很容易地设计应用程序的其馀部分,基于这样的假设,即数据将以某种方式可用/持久化(脱机时是本地的,将来是服务器的),甚至不知道它是脱机还是联机的。这样,当将来您从本地存储转换到远程存储时,应用程序不会以任何方式产生影响,因为它是根据存储库接口构建的,这些接口不会改变。持久性问题现在完全由存储库处理。

    我的另一个答案可能会有帮助。

     类似资料:
    • 我正在尝试学习存储库模式,似乎有点困惑,当我急于加载关系并将db逻辑排除在控制器之外时,如何使用此存储库模式。 快速概述我的存储库/应用程序结构。 示例ProductInterface。php 示例类别接口。php 好的,最简单的部分是使用DI向控制器注入模型依赖关系。 列出与相关产品的所有类别更加困难,因为我不再使用雄辩的模型。我正在使用一个界面,它没有暴露所有雄辩的方法。 如果我没有在我的El

    • 搜索仓库和镜像 你可以使用 Docker 来搜索所有公开可用的仓库和镜像。 $ docker search ubuntu 这将通过 Docker 提供的关键字匹配来显示您可用的仓库列表。 私有仓库将不会显示到仓库搜索结果上。你可以通过 Docker Hub 的简况页面来查看仓库的状态。 仓库 你的 Docker Hub 仓库有许多特性。 stars 你的仓库可以用星被标记,你也可以用星标记别的仓

    • 我查阅了许多存储库设计模式教程,如 https://asperbrothers.com/blog/implement-repository-pattern-in-laravel/ https://www.larashout.com/how-to-use-repository-pattern-in-laravel https://laravelarticle.com/repository-desig

    • 现在,当调用“/comments/1”时,我得到了404个错误,所以数据rest没有公开我的存储库。主要问题是“如何模拟存储库方法从数据库中获取数据?” 我的测试类: 据我所知,使用MockBean注释我替换了当前的存储库bean并且它不会被数据rest公开,我们有没有办法将数据预填充到db或存储库方法的模拟调用?

    • 我已经创建了一个包含控制器、服务和存储库层的基本Rest API。我现在正在尝试为通过产品ID查找产品的服务层方法编写一个单元测试。但是,当我运行测试时,它会在我试图模拟存储库findById()方法的行中抛出一个NullPointerException。 服务层中的getProductById()方法如下所示: 我的服务层测试类:

    • 本文向大家介绍android-gradle 如何添加存储库,包括了android-gradle 如何添加存储库的使用技巧和注意事项,需要的朋友参考一下 示例 要下载依赖项,请声明存储库,以便Gradle可以找到它们。为此,请在顶级文件repositories { ... }的app /模块中添加build.gradle。