使用域驱动设计的摘要对象

时间:2015-03-02 08:44:21

标签: design-patterns domain-driven-design

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

产品是实体和数据库表。 状态是一个实体和数据库表。

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

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

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

如果这是一个视图模型,我无法将其存储在Domain层中,我可以存储在Application Layer中。在这个stuation中如何从数据库中获取此对象? (我也在使用像Entity Framework这样的ORM工具)

2 个答案:

答案 0 :(得分:3)

  

这是实体或价值还是ViewModel?

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

答案 1 :(得分:2)

DDD中没有统计对象。你真的应该删除所有的实现细节,比如要创建的表等,直到整个域模型完成。

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

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