【发布时间】:2018-01-15 04:27:20
【问题描述】:
我有一个具有如下值对象列表的实体:
(我正在使用 Go,但我希望它通常是有意义的)
// this is my Crop entity
type Crop struct {
UID uuid.UUID
Name string
Type string
Notes []CropNote // This is a list of value object.
}
// This is my CropNote value object
type CropNote struct {
Content string
CreatedDate time.Time
}
我有 AddNewNote(content string) 的裁剪行为。但是业务流程也需要具有删除注释行为。我在想类似RemoveNote(content string) 的行为。所以我将迭代我的Crop.Notes,找到具有相同content 的行,然后从Crop.Notes 列表中删除该行。但我认为通过笔记的内容来寻找价值是容易出错的。从 API 的角度来看,这也很奇怪,因为我需要将内容发送到参数。
我的问题是,如何实现上面的删除注释行为?
编辑:
对不起,我想我没有清楚地解释自己。
我知道如何从切片中删除值。
我的问题是关于 DDD。关于如何从Crop.Notes 列表中删除仅具有上述字段的值对象。因为我们知道值对象不能有标识符。
如果我真的只能使用值对象中的Content 和CreatedDate 字段,那么我应该在执行REST API 请求时将Content 或CreatedDate 值发送到端点,这很奇怪。
【问题讨论】:
标签: go domain-driven-design value-objects