2
在樣本DDD項目上查看Evans的項目時,我注意到在Cargo
實體中,Evans使用的是值對象的tracknumber。爲什麼他沒有選擇明碼標價而選擇價值對象?這裏是埃文斯片段:在實體中使用值對象作爲標識符
public class Cargo implements Entity<Cargo> {
private TrackingId trackingId
}
public final class TrackingId implements ValueObject<TrackingId> {
private String id;
/**
* Constructor.
*
* @param id Id string.
*/
public TrackingId(final String id) {
Validate.notNull(id);
this.id = id;
}
我們可以在.Net世界中實現同樣的功能,只有通過構造函數設置的readonly變量,以後不能更改或者只有getter沒有setter。 – kamal 2011-01-29 19:45:32