在您的應用程序中使用全局事件總線是否是一種糟糕的設計?
如何確保最終不會有緊密耦合的組件在整個應用程序中彼此交談?
你能想到Java世界中的機制/工具/庫來強制執行一些規則嗎?
有一個全球性事件公共汽車的警告是什麼?
2
A
回答
4
全局事件總線的問題,即應用程序中每個組件(類或對象)都可訪問的事件總線的問題在於,您無法控制將使用事件總線的人員。
如果您是唯一的開發人員或正在與緊密團隊合作,可以就組件可以使用事件總線的條件達成一致。否則所有酒吧關閉。
話雖如此,應該有可能與事件總線溝通,否則它是毫無意義的。通過引入事件總線的代理人負責事件的實際觸發,您可以控制依賴於代理的人員。
通過使用依賴注入(通過類似guice或手動滾動的框架),您可以自動提供代理狀態,使事件總線的依賴性顯式化。
+0
這種方法看起來很合理。您可以硬編碼/配置誰可以使用此事件總線進行通話。爲了強化相關組件之間的隔離通信,您可能需要本地事件總線。我覺得這很難配置Guice(在不同的上下文中連接同一事物的不同實例),否則我可能會錯過某些東西。 – n0rm1e 2012-07-24 14:45:06
相關問題
- 1. 是否有紐約mta地鐵/公共汽車/火車等api?
- 2. OOD - 爲什麼汽車/公共汽車/摩托車應該從車輛派生出來
- 3. CQRS中的一輛公共汽車還是單獨的巴士?
- 4. boost.random車警告 - 這是什麼意思?
- 5. 私人全球與公共全球
- 6. 如何表示線性編程中的公共汽車行程?
- 7. 警告:公共/皮卡是不是一個套接字或FIFO
- 8. 汽車在JW球員
- 9. 擺脫全球警告C4503
- 10. vb.net爲什麼模型只顯示一個汽車的品牌,但我的汽車顯示完全免費
- 11. 汽車的SizeMode屬性從一個PictureBox
- 12. 什麼是全球::?
- 13. 這是什麼使用汽車? - ADL?
- 14. 爲什麼有些領域是公共的,有些是屬性?
- 15. 什麼是:全球(冒號全球)呢?
- 16. JUnit&警告通過公共API導出非公共類型的警告
- 17. 是否有全球感動的事件?
- 18. 爲什麼全球+共享的速度比全球獨自
- 19. 使用什麼事件/接口來顯示IWebBrowser2安全警告?
- 20. 什麼是AWS公共IP限制? (公共IP不彈性IP)
- 21. 全球公共Facebook的統計?
- 22. 這個警告的含義是什麼?
- 23. 什麼是在全球WP_Query
- 24. 「公共電話簿警告 - 公共目錄是空的」的火力部署
- 25. 在C#編寫一個全球性的自定義事件
- 26. 這個全球目標是什麼?
- 27. 什麼是公共密鑰
- 28. 什麼是公共接口?
- 29. 什麼是log4j警告
- 30. 如何使用openstreetmap將直接連接的公交車站停靠在某個公共汽車站?
什麼是應用程序? – 2012-07-24 08:19:41
GWT Web應用程序,但這不是很重要。 – n0rm1e 2012-07-24 08:20:09