Orderというエンティティと、アプリケーション層からの要求に基づいて注文状態やその他の情報を更新する集約ルートOrderManagerがあります(AppLayerはOrderManagerを呼び出し、OrderManagerはOrdersを含む内部状態を管理します)。
各注文には有効期限があるので、有効期限を処理するアクションをスケジュールしたいと思います。どこに置けばいいのかわからない。私は2つのアプローチを考えます:
- ドメインモデルでインターフェイスISchedulerを定義します。そのため、OrderManagerはこのインターフェースをタスクのスケジューリングに使用します。
- インターフェイスを定義するのではなく、アプリケーションレベルでの有効期限の処理をスケジュールします。これは、アプリ層がOrderManager.HandleExpirationなどのメソッドを呼び出すことを意味します
個人的には最初のアプローチが好きですが、誰か別のアイデアがあるかもしれません。