2011-10-06 51 views
0

Deall全部,这个实现是否工作?

我正在设计一个使用DDD的车辆登记系统。它需要存档所有车辆的注册,以便车辆在其整个使用期间的注册可以很容易阅读。

要实现这一要求,我会简单地把“注册” S作为在车辆的集合,如下图所示:

//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中持久化!

谢谢!

Nathan

+0

这将是很好的一些使用场景的更多细节。你能否解释为什么你选择将'Registration'作为一个值对象? –

+0

感谢您的评论,汤米!一种使用场景是,用户在档案中搜索车辆,并用其许可证号码进行搜索,然后获取该车辆在时间线上显示的注册历史记录,这可以使用Silverlight实施。 **注册**是一个实体,因为每个注册必须被唯一标识并且不可变!对不起,错误! – NathanL

+0

糟糕! **注册**是可变的! – NathanL

回答

0

鉴于这样一个简单的要求,这个解决方案看起来很好。如果不了解上下文,很难多说。你提到的要求是查看存档注册,所以你应该考虑在代码中使用该语言(registrations应该是archivedRegistrationspreviousRegistrations等)