代码之家  ›  专栏  ›  技术社区  ›  Gissipi_453

使用LiveData和ViewModel而不使用Room

  •  3
  • Gissipi_453  · 技术社区  · 6 年前

    对于Android MVVM体系结构,在我看到的所有示例中,人们要么使用空间来存储/检索数据,要么直接从API调用通过知识库类获取数据。

    我既不做API调用,也不使用我有空间的数据库来存储数据。但我需要我的视图模型从存储库中获取数据并将其传递给我的活动。

    您的存储库类是否可以从应用程序类继承,以便在不打算使用空间在本地保存数据时保存静态变量/伴生对象?

    处理这个案子的好方法是什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Suleyman    6 年前

    一般来说,在软件工程中,存储库用于从应用程序的其余部分(通常是直接业务层)抽象数据层(数据库、Web服务),预订网站的这种模式就是一个很好的例子:

    Repository style

    它通过 发布/订阅 异步连接并将它们发送到其他组件。所以这些组件是相互独立的。
    因此,存储库只是一个简单的中介类,用于使应用程序更模块化,这样您可以更容易地交换部分,并确保应用程序的其余部分不受数据库连接或HTTP调用等的影响。所以从技术上讲,您可以从应用程序(或其他任何东西)继承并使用它保存静态变量等等。

    但是 如前所述 here :

    应用程序对象不能保证永远留在内存中,它将被杀死。与人们普遍认为的相反,这个应用程序不会重新启动。Android将创建一个新的应用程序对象,并启动用户之前所在的活动,以给人一种从未杀死应用程序的假象。

    所以这完全取决于您,您可以根据自己的意愿使用存储库样式,它完全不与房间或其他任何东西绑定。