我开始理解域模型的想法,但有一件事我看不到这是如何在域模型中实现的——分组数据。最明显的例子是各种报告,有或没有动态列分组和用户指定的列顺序。
我将尝试提供具体示例。想象一下以下领域模型:
Orders [1-to-many] Positions [1-to-many] Production items
显示为简单的 3 级列表。
Order 1
- Position 1
- Production item 1, length: 2.5, weight: 1.234
- Production item 2, length: 2.5, weight: 2.345
- Production item 3, length: 5, weight: 3.456
然后要求通过从生产项目中添加“长度”字段(仅用于显示,不更改职位实体本身)来修改职位级别,并按此字段分组。
Order 1
- Position 1, length: 2.5
- Production item 1, length: 2.5, weight: 1.234
- Production item 2, length: 2.5, weight: 2.345
- Position 1, length: 5
- Production item 3, length: 5, weight: 3.456
下一个要求是在职位级别从生产项目级别添加另一个 SUMmed 字段“重量”。同样,仅在展示中。
Order 1
- Position 1, length: 2.5, weight: 3.579
- Production item 1, length: 2.5, weight: 1.234
- Production item 2, length: 2.5, weight: 2.345
- Position 1, length: 5, weight: 3.456
- Production item 3, length: 5, weight: 3.456
我需要改变什么来实现这个“人造”模型?
似乎需要某种复合值对象来代替位置:所有位置实体字段+大小字段+权重字段。我在正确的轨道上吗?