在行使你的DDD技能,假設你有這樣的對象:在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);
}
f第一種情況使我們避免了創建額外的方法;第二種情況允許Person對象知道其地址的變化(以防某種原因或某種原因)。
這裏有最佳做法嗎?