【发布时间】:2011-10-06 08:07:41
【问题描述】:
全部交易,
我正在使用 DDD 设计一个车辆登记系统。要求将所有车辆的登记存档,以便可以轻松阅读车辆在其生命周期内的登记。
为了实现这个要求,我将简单地将“REGISTRATION”s 视为 VEHICLE 中的一个集合,如下所示:
//The Aggregation Root
public class Vehicle
{
GUID id;
List<Registration> registrations_;
......
public Vehicle() { ..... }
...
}
//The Value Object
public class Registration
{
Vehicle vehicle_;
decimal amount_;
......
//The calendar interval for a single registration.
Period period_;
public Registration() { .... }
}
有人可以评论一下这个实现是否真的满足上述要求吗?需要任何改进吗?
数据将通过 NHibernate 或 EF 使用代码优先方法保存在 SQL Server 2008 中!
谢谢!
内森
【问题讨论】:
-
如果能提供更多关于使用场景的细节就更好了。您能否也解释一下为什么选择将
Registration设为值对象? -
感谢您的评论,汤米!一种使用场景是,用户搜索车辆的档案,例如使用其许可证号,然后获取显示在时间线上的该车辆的注册历史记录,这可以使用 Silverlight 来实现。 Registration 应该是一个实体,因为每个注册都必须是唯一标识且不可变的!对不起!
-
糟糕! 注册是可变的!