我有一个名为Order的实体,以及一个聚合根OrderManager,它根据来自应用层的请求更新订单状态和一些其他信息(AppLayer 调用 OrderManager,OrderManager 管理包括订单在内的内部状态)。
每个订单都有到期时间,所以我想安排一个操作来处理到期。我不知道该放在哪里。我想到了两种方法:
- 在域模型中定义一个接口 IScheduler。所以 OrderManager 使用这个接口来进行任务调度。
- 不要定义接口,而是在应用程序级别安排过期处理。这意味着应用层调用了一些方法,比如 OrderManager.HandleExpiration
我个人更喜欢第一种方法,但也许有人有其他想法?