我知道DDD在基於任務的用戶界面方面很好,但我正在重構遺留應用程序,我在那裏有貧血域模型(許多設置者沒有業務邏輯)。如何處理使用DDD更新實體(CRUD)和域名事件?
其中一個步驟是使其到達模型並添加域事件。在添加事件創建(TaskCreated
在構造函數中)和刪除(TaskRemoved
)模型是一個簡單的過程,我正在努力與更新模型。
我們有一個RESTful API和PUT /tasks/{id}
端點。引擎蓋下框架映射響應DTO對象的身體,然後調用制定者一個接一個:
task.setText('new text');
task.setStartDate(newStartDate);
// and so on
我要當任務被更新,以聽取一些事件,並在例如更新Google日曆。 正如你可以成像,如果我在每個setter
(TextChanged,StartDateChanged)中記錄事件並監聽所有這些事件,我將最終得到很多API調用Google API,這不是我想要的。
問題是:我應該如何以正確的方式使用更新操作?我是否應該將所有setters
呼叫替換爲一個update(newData)
呼叫並僅派遣一個域事件?如何只做一個任務更新後調用谷歌日曆的API調用?
」對於非貧血的領域模型,您確實可以在任務更新「 」中定義事件,非貧血模型的代碼是什麼?我的意思是如何在同一時間更新幾個領域,以及這是否是一個好主意? –