我知道 DDD 非常适合基于任务的 UI,但我正在重构一个遗留应用程序,其中我有贫血域模型(许多设置器没有业务逻辑)。
第一步是让它到达模型并添加领域事件。虽然添加用于创建(TaskCreated
在构造函数中)和删除(TaskRemoved
)模型的事件是一个简单的过程,但我正在努力更新模型。
我们有一个带有 PUT/tasks/{id}
端点的 RESTful API。在底层,框架将响应的主体映射到 DTO 对象,然后一一调用 setter:
task.setText('new text');
task.setStartDate(newStartDate);
// and so on
我想在任务更新时收听一些事件,并在例如谷歌日历中更新它。正如您所想象的那样,如果我在每个setter
(TextChanged、StartDateChanged)中记录事件并监听所有事件,我最终会收到许多对 Google API 的 API 调用,这不是我想要的。
问题是:我应该如何以正确的方式使用更新操作?我应该setters
用一个update(newData)
电话替换所有这些电话并在那里只调度一个域事件吗?更新任务后如何只对谷歌日历进行一次API 调用?