這是一個我目前掛斷的通用設計問題。它導致了一些精神代碼塊...我不想像這樣繼續它,如果它只是一個常見的陷阱,但我想繼續,如果它被接受的用法,因爲代碼很乾淨,去耦(禁止交叉信息)。發佈者/訂閱者使用情況滑入狀態
我在代碼中有一個基於列表的發佈者/訂閱者模式,用於允許任意代碼段發送未知用戶可以收聽的消息。非常坦率的。
此模式的當前用例之一是創建一個UI狀態指示器,顯示用戶應用程序正忙。工作開始前有一條消息,一條重複的進度消息和一條完成消息。它看起來很乾淨,較低級別的代碼只發布消息並且不關心聽衆。
起始消息最初驅動UI;它會在主窗體的狀態欄中顯示一個選取框進度條。完成消息隱藏了這個進度條。更新消息在標籤中表示爲文本。
當時沒有意識到,我使UI取決於這些消息的順序。用戶界面依賴於開始和結束消息來正確反映用戶界面。我所指的「狀態」在用戶端(消息本身不保留任何狀態)。
這種用法違背了pub/sub模式嗎?如果是這樣,問題依賴於消息順序?如果沒有,那麼好,我可以繼續:-)
聽起來不可怕,回到你的代碼哥們! :) – kenny 2012-02-15 15:36:29
如果消息出現亂序會發生什麼? – cadrell0 2012-02-15 19:14:10
@ cadrell0它可能無法啓動或一旦顯示可能無法關閉...我的質疑解決方案的來源。 – 2012-02-16 08:17:25