2011-11-24 93 views
3

我目前正試圖設計一個屏幕捕獲軟件。如何刪除這個循環依賴

我遇到的一個設計問題是我想知道是否有可能消除PictureGetter和PictureProcessor之間的循環依賴關係。

獲取者需要調用處理器來告訴它圖片已準備就緒。處理器必須告訴getter它已完成處理圖片。

這兩個元素在不同的線程中,不能直接共享數據(我不想共享數據),它們只能將目標對象的成員調用添加到該對象的隊列隊列中。 (如queue.add(&PictureProccessor::sendPicture,picture)

enter image description here

+0

http://www-subatech.in2p3.fr/~photons/subatech/soft/carnac/CPP-INC-1.shtml – Cyclonecode

+0

是的,我知道我可以轉發宣告一切。這是一個關於是否有任何方法可以設計的問題。 – Lalaland

+0

而你的問題是? – themel

回答

6

使用資源管理器,使雙方意識到這一點。吸氣人員可以將一張圖片加入管理人員處理,然後管理人員可以擁有一個可用於處理的處理器「池」。處理器可以使用資源管理器排列處理過的圖片,然後可以通知相應的獲取者。我相信這種模式有一些時髦的名字,但現在不記得它。

+0

是的,這就是我一直在尋找的東西(它也解決了我的圖片管理問題)。謝謝。 – Lalaland

0

也許創建一個從getter到處理器的1個元素隊列。

Getter發送圖片。處理器完成後隊列爲空。