我正在评估RealmDb,我感觉RealmDb与模型层紧密耦合。这让我觉得,如果明天我需要用其他本地数据库取代它,那将是一个巨大的重构努力。
我的问题是如何使用RealmDB实现干净的架构?有什么我可以效仿的例子吗?
发布于 2016-05-07 19:49:13
Realm使您可以更容易地将数据库模型重用为视图模型。但是,没有什么可以阻止您拥有数据层实体和视图层实体,然后在边界上进行映射。
例如。
// Data layer
public class FooEntity extends RealmObject {
// Realm fields and methods...
public static FooEntity fromViewModel(FooViewModel viewModel) {
// Convert to entity
}
public static FooViewModel toViewModel(FooEntity entity) {
// Convert to view model
}
}
// View layer
public class FooViewModel {
// Standard POJO used by the View layer
}在许多情况下,这很可能是过度杀伤力,但它会给你你想要的分离。
发布于 2017-03-23 04:32:34
有不同的架构,其中的主要目标是隔离我们的框架的应用领域,如干净架构,洋葱架构,六边形架构。
为了实现这种隔离,实现细节被隐藏为数据层。在域层中定义了边界或端口,定义了如何访问存储的数据,但不知道它们是如何存储的,通常使用存储库模式来实现此体系结构需求。
有了这些需求,我们通常会有一个持久化模型和差异化的领域实体。持久化模型可以而且应该耦合到我们正在使用的框架,例如Realm。
我留下了一个图表,你可以更好地用图形来理解它。

https://stackoverflow.com/questions/37085259
复制相似问题