在锻炼你的 DDD 技能时,假设你有这样的对象:
class Person {
Set<Address> addresses = new HashSet<Address>();
}
允许正常/完全访问集合是否更合适:
Set<Address> getAddresses() {
return addresses;
}
这将允许调用者添加/删除他们认为合适的地址,或者,在这种情况下让调用者通过 Person 对象更好:
Set<Address> getAddresses() {
return Collections.unmodifiableSet(addresses);
}
void addAddress(Address address) {
addresses.add(address);
}
void removeAddress(Address address) {
addresses.remove(address);
}
第一种情况使我们免于创建额外的方法;第二种情况允许 Person 对象知道其地址的更改(以防它出于某种原因关心)。
这里有最佳实践吗?