2016-12-13 63 views
0

擁有一個mvc系統,觸發控制器中的事件還是注入的服務具有依賴關係會更好?在MVC中觸發事件的最佳地點是什麼?

例如,

class MyController 
{ 
    $brainStorage->store($yellowBrain); 

    $EventDispatcher->dispatch(new BrainCreatedEvent($yellowBrain)); 

... 

或者應該是觸發事件的存儲服務?

我更喜歡控制類是唯一知道域事件的類。

這是什麼優點和缺點?

回答

0

如果您的控制器開始執行事件處理,它將失敗單一響應性,因此我認爲最好的選擇是創建一個抽象,並讓客戶端決定要在應用服務中注入的算法,以便編排工作流程(使用的戰略模式,國際奧委會,刪除代碼的氣味,你的代碼將開始可擴展和固體)
希望這有助於決定,親切的問候!

+0

Elias這是一個控制器的責任?單身? :-) – zioMitch

+0

我問哪裏觸發不到哪裏聽。觸發器與偵聽不同。觸發是管理不知道的。 – zioMitch

+0

應用服務應該觸發事件,以便它負責讀取業務對象 - >修改它 - >保存更改 - >保存後觸發事件。如果你把這個邏輯放在這個類中,你可以讓多個客戶端使用單一的服務。 –

相關問題