领域架构模式
Realm architecture pattern
我从 CoreData 迁移了我的应用程序,我对事情原来如此简单印象深刻。我可以删除很多代码:)
让我感到有点不舒服的一件事是 Realm 遍及我的应用程序,产生了很大的依赖性:我的应用程序有一个 MVVM 架构,如果只有模型是 Realm 所在的地方,我会感觉最好。
在迁移之后,我将结果和列表对象发送到我的视图模型。用 [Type] 对象代替不是更好吗?
你怎么看?您如何使用领域构建您的应用程序?
您必须自己决定将 Realm 作为依赖项是否会给体系结构带来太大的风险,但是有几个很好的理由说明您应该直接使用 Realm objects/collections:
Realm 不是基于 SQLite 构建的,也不是 ORM。因此,当您访问 Realm 对象或集合时,该数据是内存映射的,并且仅在访问时延迟加载。这意味着如果你想将结果转换为 Objects
的 Swift 数组,或者更糟糕的是将那些 Objects
的副本转换为不依赖于 Realm 的 class,那么这将与 Realm 为您提供的高效方式相比,reading/copying 预先在 Result
中生成所有数据。
默认情况下,Realm 实例会自动更新。这意味着通过直接使用 Realm Object
或 Result
,您可以将您的视图或在您的案例中的视图模型绑定到这些对象上的更改。领域实例在更新时发出通知 (relevant docs), allowing you to update the view model and then the view off of this (for example if you have a table view backed by a Result
, you can trigger a reloadData
on the table view off of the notification, since the Result
instance will now have the latest objects). Or you can also use Key-Value Observing on a specific Realm object to respond to changes on its properties to update the view/view model (relevant docs)。
希望这有助于塑造您对建筑的看法。在撰写本文时 post,我们正在研究对象级通知,这将启用进一步的数据绑定功能。您可以关注此 here.
的进展
我从 CoreData 迁移了我的应用程序,我对事情原来如此简单印象深刻。我可以删除很多代码:)
让我感到有点不舒服的一件事是 Realm 遍及我的应用程序,产生了很大的依赖性:我的应用程序有一个 MVVM 架构,如果只有模型是 Realm 所在的地方,我会感觉最好。
在迁移之后,我将结果和列表对象发送到我的视图模型。用 [Type] 对象代替不是更好吗?
你怎么看?您如何使用领域构建您的应用程序?
您必须自己决定将 Realm 作为依赖项是否会给体系结构带来太大的风险,但是有几个很好的理由说明您应该直接使用 Realm objects/collections:
Realm 不是基于 SQLite 构建的,也不是 ORM。因此,当您访问 Realm 对象或集合时,该数据是内存映射的,并且仅在访问时延迟加载。这意味着如果你想将结果转换为
Objects
的 Swift 数组,或者更糟糕的是将那些Objects
的副本转换为不依赖于 Realm 的 class,那么这将与 Realm 为您提供的高效方式相比,reading/copying 预先在Result
中生成所有数据。默认情况下,Realm 实例会自动更新。这意味着通过直接使用 Realm
Object
或Result
,您可以将您的视图或在您的案例中的视图模型绑定到这些对象上的更改。领域实例在更新时发出通知 (relevant docs), allowing you to update the view model and then the view off of this (for example if you have a table view backed by aResult
, you can trigger areloadData
on the table view off of the notification, since theResult
instance will now have the latest objects). Or you can also use Key-Value Observing on a specific Realm object to respond to changes on its properties to update the view/view model (relevant docs)。
希望这有助于塑造您对建筑的看法。在撰写本文时 post,我们正在研究对象级通知,这将启用进一步的数据绑定功能。您可以关注此 here.
的进展