現在、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 を無効にする (セットで作業する場合は無効にするか省略する) 最善の方法が何か知りたいです。これまでのところ、リポジトリコンストラクターでそれを行うことを考えていました。これは、集約にアクセスし、「コレクション」として機能する場所だからです。
誰かがこれに取り組むための解決策を思いついた場合、私はそれを聞いてうれしいです:)他のアプローチも大歓迎です。
2013 年 10 月 1 日更新:
これは、Greg Young による CQRS/ES アプローチによる DDD ではありません。しかし、私は本と最初のアプリから始めたばかりだったので、Evans が取ったアプローチです。Greg Young が言ったように、良いテーブルを作る必要がある場合は、最初にいくつか作る必要があります ;)