我已經讀了很多關於事件驅動架構(EDA)設計模式,雖然它看起來非常強大(恕我看到漂亮嗎?)我感到困惑有兩件事:一是如何控制條件邏輯,二是如何控制異常。異常處理和狀態控制
比方說,我想設計一些公開的Ajax消費回調。回調將由前端用「用戶名」和「密碼」觸發,我將返回一個本地化的「返回代碼」,表示成功或失敗。
當用戶成功登錄時,讓我們假設我登錄它,發送管理和電子郵件,並開始會話。如果我是使用基於EDA模式,我可能有以下幾點:
用戶登錄 - >(事件分派,總是) - >(登錄,發送電子郵件,發起會話的所有調用)
也就是說,登錄回調將派發一些通知,發出監聽該特定事件的所有註冊類。我的問題是,誰確認if驗證器對(用戶名,密碼)是否成功?從某種意義上說,如果認證是正確的,這三個事件只有有效。
所以,那麼也許我火了一個事件的第一,且僅當成功,極大地激發人:
用戶登錄 - >(事件分派,總是) - >嘗試,如果以用戶身份登錄(事件分派,成功) - >(登錄,發送電子郵件,開始會議全稱爲)
雖然這工作,我已經失去了如何獲得反饋控制。事件似乎遵循「一勞永逸」的思路;我怎樣才能將代碼返回到前端?也就是說,我看不到一個事件觀察員給主題提供反饋的方法。
這繼續異常處理;在這種情況下處理異常的最佳方法是什麼?
感謝您的任何建議! 阿德里安
(儘管它可能在理論意義不要緊,我試圖在此適用於PHP)
太好了,非常感謝Mike。我想我自己也得出了同樣的結論,這不是一種「一刀切」的模式。是否真的說將EDA重點僅限於業務領域稱爲域EDA? – AdrianGW
這不叫任何東西。但是,如果你說域名事件模式的人明白你的意思。 – MikeSW
太好了。謝謝你的幫助! – AdrianGW