【发布时间】:2016-11-02 15:51:48
【问题描述】:
我正在玩 Android 版 Realm。
我喜欢自动更新对象的想法,但我担心它与软件架构有关。
我看到许多提议的架构都指定了一个层来处理数据/数据库访问,理想情况下,较高层不会知道有关数据库实现的细节。这将有助于提高可维护性、模块化等。
当您使用 Realm 对象时,如果您想利用它们的自动更新属性,我能想到的最常见的方法是在 Activity/Fragment 代码中使用这些对象。现在让我们假设用户刚刚在屏幕上编辑了数据(由引擎盖下的领域对象表示)并且正在保存这些编辑。如果你调用这个对象的设置器,那实际上是一个数据库操作,你需要一个事务。通过在活动/片段代码上创建数据库事务,架构分崩离析,因为您让 UI/业务层了解数据库实现细节。
我的问题是:如何以不损害架构的方式利用 Realm 自动更新对象?
旁注:我在最近的一个应用程序中使用了 Realm,对于每个查询,我们都必须将结果复制到非托管对象,以便我们可以将它们发送到 UI/业务层。我认为这不是最好的策略,因为我们无法充分利用 Realm。
【问题讨论】:
-
当然有很多很多的包装器接口/类。
-
@EpicPandaForce 我在你的个人资料中看到你写了很多关于 Realm 的文章。你有什么具体的文字涉及这个问题吗?
-
不幸的是,它不在我的个人路线图上,但我一直都很忙/懒得去做。 :/ 当前要写的“目标”是 Flow,这个主题将在此之后出现。老实说,我更惊讶于没有人写过关于抽象领域的文章没有复制每个元素。
-
您是否看过github.com/realm/realm-java/tree/master/examples/… 以获得一些灵感?
标签: android architecture realm