【问题标题】:Clean architecture Android: where to do object mapping清洁架构 Android:在哪里进行对象映射
【发布时间】:2017-07-16 19:02:29
【问题描述】:

我正在尝试基于 bob 的简洁架构构建一个 android 应用程序。我读过很多相同的文章。最后关注thisthis。我从here 阅读了有关存储库模式的信息。

该应用程序是一个简单的笔记(/想法)应用程序。我是按功能打包的。

让我们从数据库中获取所有注释/想法。我有一个用例/交互器GetAllIdeasUseCase,它将返回(观察者)业务对象列表IdeasEntity。这使用IdeasRepository 来获取想法列表。 IdeaLocalStore 是数据库的存储库。 IdeasRepository 目前只是在IdeaLocalRepositoryIdeaCloudRepository 之间进行选择,并将调用它们的相应函数。

要创建 IdeasEntity,我需要使用多个数据库模型,因此需要多次调用 IdeaLocalStore。我需要将它们结合起来。

所以问题是我应该在哪里进行这种组合/映射。我应该在IdesRepository 中执行还是应该在用例中执行?

【问题讨论】:

  • 实体应该在一次读取中创建,让数据库完成这项工作。

标签: android clean-architecture


【解决方案1】:

在我看来,您应该在存储库中执行此操作。存储库必须负责为您提供完全创建的对象。 有一本描述这种方法的好书——领域驱动设计( http://mikehadlow.blogspot.com/2009/01/eric-evans-on-repositories.html)。

书中引用: '因此存储库的核心目的是封装持久性。客户端应该看起来只是在使用实体集合,对象关系映射和特定数据访问 API 的所有细节都应该隐藏在类似接口的集合后面。仅应为聚合根提供存储库

【讨论】:

    猜你喜欢
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2022-05-18
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    相关资源
    最近更新 更多