域驱动设计 - 如何在UI上使用值对象

时间:2010-01-23 13:07:44

标签: java .net design-patterns domain-driven-design

我想知道如何在Web应用程序中使用ddd模型。在Eric Evan Cargo应用程序中,Cargo class包含值对象Itinerary。在行程中是Legs的集合,同样是值对象。所有值对象都将代理ID隐藏到外部世界。 因此,在使用此域模型时,如何创建Web应用程序,您可以在其中单击货物行程,列出所有腿,然后通过重定向到新的“腿部详细信息”页面来显示腿的详细信息。通常我会在查询字段中传递LegId并在详细信息页面上再次读取它。但既然它没有id,你会怎么做?

使用在收集分类时可能会改变的腿的索引?

传递查询字段中的所有值,因为这是值对象标识?

听起来向后退了一步:)

1 个答案:

答案 0 :(得分:1)

如果腿没有id,你必须引用它的唯一方法是通过货物,它具有身份,因此可以与URI / URL相关联。要引用特定的分支,您只有索引,可以是数字或字典键。如果您有排序问题,您可以定义两个列表:一个列出规范排序以供参考,另一个列表具有排序,映射顺序位置和规范索引。

至于Evans示例中的值对象有id的原因,我认为这是为了序列化目的。

当然,您也可以选择带有身份的行程/腿。