我有一個關於如何使用DDD解決以下情形的問題。如何從DDD中的根創建此組件?
我有2個實體Person
和Email
與一對多的關係。一個人可以有零個或多個電子郵件地址。
Person
是一個組合的Email
的聚合根。
class Person{
Set<Email> emails = new HashSet<Email>
}
Class Email {
String value;
Email(String value){
}
}
我在系統2個要求:
用戶可以發送一個新的電子郵件添加到人
用戶可以暫時創建郵件列表的請求,並且可以或可能不會將它們添加到人。
有3種方法在DDD中有意義嗎?還是有更好的方法來滿足我上面的要求。
要從黨創建電子郵件,但不能將其添加到郵件列表(見下面
createEmail()
)。有一個單獨的方法只是添加電子郵件到列表(見下面的
setEmail()
)。一種爲個人創建電子郵件並將其添加到電子郵件列表(請參見下面的
addEmail()
)的方法。
public Class Person{
Set<Email> emails = new HashSet<Email>
public void addEmail(String value){
Email email = createEmail(value);
emails.add(email);
}
public Email createEmail(String value){
return new Email(value);
}
public void setEmail(Email email){
emails.add(email);
}
}