[从这个问题和评论中跟进:实体是否应该有方法,如果有,如何防止它们被外部聚合调用]
正如标题所说:我不清楚作为孩子的实体的实际/确切目的是什么?
根据我在很多地方读到的内容,这些是作为聚合子项的实体的属性:
在我看来,这转化为几个问题:
那么,为什么我们有一个实体而不是只有值对象?只有值对象、聚合和公开值对象的所有方法(我们已经复制实体信息)看起来更方便。
附注。我想将子实体集中在聚合上,而不是实体集合上。
[更新以回应康斯坦丁·加尔贝努的回答和评论]
那么,实际上,你会有这样的事情吗?
public class Aggregate {
...
private _someNestedEntity;
public SomeNestedEntityImmutableState EntityState {
get {
return this._someNestedEntity.getState();
}
}
public ChangeSomethingOnNestedEntity(params) {
this._someNestedEntity.someCommandMethod(params);
}
}
Run Code Online (Sandbox Code Playgroud)