サンプル DDD プロジェクトで Evans のプロジェクトを表示しているときに、Cargo
エンティティで、Evans が値オブジェクトである tracknumber を使用していることに気付きました。彼がプレーンstring tracknumber
を選択せず、ID に値オブジェクトを選択したのはなぜですか? エヴァンスのスニペットは次のとおりです。
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;
}