作为数据库查询的结果,ValueObjects的集合

时间:2015-01-09 20:04:41

标签: domain-driven-design

鉴于DDD中ValueObjects的性质,可以将它们视为包含数据库查询结果集的容器的集合吗?

例如,这个伪代码可以合理地使用ValueObject概念?:

List<ValueObject> resultSet = GetValueObjectsFromDB();

List<ValueObject> GetValueObjectsFromDB()
{
    return ExecuteCommand("SELECT * FROM dbo.AnEntity");
}

1 个答案:

答案 0 :(得分:1)

我认为你混淆了作为域驱动设计的构建块之一的Value Object和作为哑数据容器的DTO(Data Transfert Object)。

值对象:对象没有概念标识。它们应该被视为不可变的。 Value Object在域模型中扮演他的角色,并且经常会有与之相关的行为。

DTO :它只是一个愚蠢的数据容器,可用于在线上或架构层之间传输数据。

您在查询中使用的内容&#39;方是根据您的特定需求量身定制的DTO。如果您想在屏幕上显示它或将这些数据传输到另一个系统,DTO就是这样做的。