RealmDb:Android中的清洁架构

时间:2016-05-07 06:25:04

标签: android realm

我在评估RealmDb,我觉得RealmDb与模型层紧密结合。这让我觉得如果明天我需要更换一些其他本地数据库,那将是一个巨大的重构努力 我的问题是如何使用RealmDB实现干净的架构?我可以遵循的任何例子吗?

2 个答案:

答案 0 :(得分:2)

如果需要,Realm可以更轻松地将数据库模型重新用作视图模型。但是没有什么可以阻止你拥有数据层实体和视图层实体,然后在边界上进行映射。

E.g。

// 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
}

在许多情况下,这很可能是矫枉过正,但它会给你你想要的分离。

答案 1 :(得分:1)

有不同的架构,其主要目标是将框架应用的领域隔离为清洁架构,洋葱架构,六边形架构。

为实现此隔离,实现细节将隐藏为数据层。边界或端口在域层中定义,定义如何访问存储的数据,但不知道它们是如何存储的,存储库模式通常用于实现此体系结构要求。

根据这些要求,我们通常会有持久性模型和差异化的域实体。持久性模型可以而且应该与我们正在使用的框架耦合,例如Realm。

我留下一个图表,您可以用图形方式更好地理解它。

Clean Architecture