1.引言

最近剛學習了下DDD中領域事件的理論知識,總的來說領域事件主要有兩個作用,一是解耦,二是使用領域事件進行事務的拆分,通過引入事件存儲,來實現數據的最終一致性。若想了解DDD中領域事件的概念,可參考DDD理論學習系列(9)-- 領域事件。

Abp中使用事件總線來實現領域事件,而關于事件總線的實現,大家可參考我這篇博文——事件總線知多少,本文將不再贅述。

2.用例分析

當用戶被成功分配任務后,發(fā)送郵件和消息通知給用戶。

這個用例比較簡單,沒有太多的復雜邏輯,按照我們傳統(tǒng)的思路,直接在任務編輯方法中添加郵件和消息發(fā)送的方法即可,代碼如下:

public void UpdateTask(UpdateTaskInput input){    //We can use Logger, it's defined in ApplicationService base class.
    Logger.Info("Updating a task for input: " + input);    //獲取是否有權限
    boo