1.引言
最近剛學(xué)習(xí)了下DDD中領(lǐng)域事件的理論知識,總的來說領(lǐng)域事件主要有兩個作用,一是解耦,二是使用領(lǐng)域事件進(jìn)行事務(wù)的拆分,通過引入事件存儲,來實(shí)現(xiàn)數(shù)據(jù)的最終一致性。若想了解DDD中領(lǐng)域事件的概念,可參考DDD理論學(xué)習(xí)系列(9)-- 領(lǐng)域事件。
Abp中使用事件總線來實(shí)現(xiàn)領(lǐng)域事件,而關(guān)于事件總線的實(shí)現(xiàn),大家可參考我這篇博文——事件總線知多少,本文將不再贅述。
2.用例分析
當(dāng)用戶被成功分配任務(wù)后,發(fā)送郵件和消息通知給用戶。
這個用例比較簡單,沒有太多的復(fù)雜邏輯,按照我們傳統(tǒng)的思路,直接在任務(wù)編輯方法中添加郵件和消息發(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); //獲取是否有權(quán)限 boo