【问题标题】:Does this implementation work?这个实现有效吗?
【发布时间】: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 应该是一个实体,因为每个注册都必须是唯一标识且不可变的!对不起!
  • 糟糕! 注册是可变的!

标签: domain-driven-design


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多