2011-10-17 22 views
2

什麼是最好的方式去調用內部只有(即沒有客戶端代碼可以調用邏輯)的各種服務?服務或事件?

IProcessService - 將運行各種事情並對域實體進行更改,但是當某個數據在這個域實體上發生變化時,我們想發送一個通知(向通知表中添加一條新記錄,記錄當前用戶和類型)通知,甚至可能發送電子郵件)。

E.g.添加一個客戶端,只要我們添加一個客戶端 - 我們想要在db中保存一條客戶端已經添加的記錄,如果我們有一個供應商確認,我們有一個確認的交貨日期,我們要發出通知。

我的通知是記錄相關的訂單的過程中所有活動的一種方式......

使用酒館子方法共同/事件大腕等?

注:我使用LINQ to SQL的,並與我的asp.net MVC應用程序進行通信的服務層,所有的業務邏輯/驗證/規則等存在我的服務層內...

回答

1

退房Domain Events

當您致電client.ConfirmDeliveryDate()時,它將引發域事件(DeliveryDateConfirmed)。然後你將有一堂課聽這個活動:EmailCustomerWhenDeliveryDateConfirmed

+0

這篇文章確實進入了很多深度,但我覺得它太複雜了?如果我有一個簡單的事件列表程序,它甚至運行一些代碼,甚至在IRepo的實例中(保存到db)來發出通知,我對此感到滿意,您怎麼看? – Haroon