【问题标题】:Using summary objects with domain driven design在领域驱动设计中使用摘要对象
【发布时间】:2015-03-02 21:52:47
【问题描述】:

我是领域驱动设计的新手。我们正在创建实体对象来表示我们的模型。并表示具有相同架构的数据库表。但是我对摘要对象有点困惑。

Product 是一个实体和数据库表。 States 是一个实体和数据库表。

我想得到一个这样的摘要列表:

StateName     ProductName      SellCount
---------------------------------------
State-1       Laptop-ESD14     145
State-1       IPhone-FMNL8     1220
State-1       Book-OYLG4       7789

这是一个统计对象,实际上这是一个关系选择查询结果。我在哪里可以存储这个对象。这是实体、值还是 ViewModel?

如果这是一个视图模型,我不能将它存储在域层中,我可以存储在应用层中。在这种情况下,如何从数据库中获取此对象? (我也在使用像实体框架这样的 ORM 工具)

【问题讨论】:

    标签: design-patterns domain-driven-design


    【解决方案1】:

    这是一个实体、值还是 ViewModel?

    ViewModel 不是与 DDD 相关的术语,但如果它是只读的,它看起来可能是 Read Model。从那里你可以为它编写一个简单的专门的“报告”存储库,或者去完整的CQRS路线。

    【讨论】:

      【解决方案2】:

      在 DDD 中没有统计对象之类的东西。你真的应该放弃所有的实现细节,比如创建哪些表等,直到你的整个域模型完成。

      从 DDD 的角度来看,使用复杂连接等加载对象并不重要,它仍然只是一个实体或值对象。

      在 DDD 中,我们使用存储库模式只是为了能够抽象出这些细节,并专注于构建代表我们利益相关者愿望和语言的领域模型。

      【讨论】:

      • 我的汇总统计视图模型名为 SaleSummaryView。那么,SaleSummaryView 是值对象吗?
      • @bookmarker:只有你能回答这个问题。值对象的定义:An object that contains attributes but has no conceptual identity. They should be treated as immutable
      猜你喜欢
      • 2011-05-26
      • 1970-01-01
      • 2015-01-06
      • 2011-10-06
      • 1970-01-01
      • 2015-02-27
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多