2014-10-12 81 views
0

使用單例在類之間發送消息是好的還是壞的想法?使用單例在任何兩個類之間發送消息

通信的一端註冊爲偵聽器(偵聽某個字符串或對象,可能帶有一些參數),另一端發送消息。任何消息都可以有多個或沒有監聽器。

使用這種模式意味着不同項目中的對象可以互相通信而不必互相參照。

可能有用的一種情況是將應用程序中的所有錯誤發送到一個對象。您可以輕鬆地從應用程序的任何部分發送錯誤,並且錯誤管理器可以偵聽發生的任何錯誤。

採取這種方法有什麼缺點?

因爲任何應用程序都可能正在偵聽某個事件並在完全不相關的項目中,所以想到的問題是全局性的,因此很難進行測試以及出現意外結果的可能性。

+0

在我看來,你需要發佈訂閱設計模式對於這種情況。 http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern http://www.codeproject.com/Articles/34316/Topic-based-Publish-Subscribe-design-pattern-imple – 2014-10-14 01:32:53

回答

0

或...作爲另一個選項Mediator design patterm。由於概念上它定義了一個對象,它封裝了一組對象如何交互。介體通過讓對象明確地互相引用來促進鬆散耦合,並且可以讓您獨立地改變它們的相互作用。

關於到

使它很難做測試

你總是可以考慮嘲諷。

1

對於這樣的情況,我喜歡使用Observer pattern並將Event Dispatcher設置爲Singleton。

enter image description here

+0

我正要去推薦同樣的東西:) – Coldstar 2014-10-28 05:26:25

相關問題