目前正在研究 DDD,我已经阅读了 Eric Evans 的大部分蓝皮书。到目前为止很有趣:)
我一直在对一些聚合进行建模,它们包含一组过期的实体。我想出了一种通用的表达方法:
public class Expirable<T>
{
public T Value { get; protected set; }
public DateTime ValidTill { get; protected set; }
public Expirable(T value, DateTime validTill)
{
Value = value;
ValidTill = validTill;
}
}
我很好奇最好的方法是使 Expirable 无效(在一组工作时将其无效或省略)。到目前为止,我一直在考虑在 Repository 构造函数中执行此操作,因为这是您从中访问聚合并充当“集合”的地方。
我很好奇是否有人提出了解决此问题的解决方案,我很高兴听到它:) 其他方法也非常受欢迎。
2013 年 10 月 1 日更新:
这不是 Greg Young 的 CQRS/ES 方法的 DDD。但是 Evans 的方法,因为我刚开始接触这本书和第一个应用程序。就像 Greg Young 说的,如果你要制作好桌子,你必须先制作几张;)