2009-04-28 35 views
1

我正在使用libsigC++來連接應用程序,並且不確定如何更簡單地執行它。信號插槽體系結構最佳實踐

有一個預先存在的對象層次結構管理數據層,頂層對象公開所有功能。迄今爲止都很好。

爲此,我添加了一個GUI對象層次結構,並在應用程序對象中將它們與信號連接綁定在一起。爲了建立連接,我需要指向發送者和接收者的指針。

現在,我是否直接掛鉤樹中的一個子構件,因此需要指針在樹上向下傳遞?

或者,我是否會經歷在連鎖的每一步都連接信號和插槽的艱辛過程?

一方面,通過指針會破壞sig-slot模型購買你的分離。另一方面,在每個步驟建立聯繫並不像韻律所希望提供的假設的「事件心靈感應」那樣。

哪個人會對這種模式有經驗的人考慮默認方法?

回答

1

就我個人而言,我沒有看到任何問題,因爲信號/插槽機制會「跳過」圖層。我更喜歡這樣看待它:一個組件正在向野外發送信號,任何對這些信號感興趣的人都可能會聽到它們。

一些技巧:避免發送過於通用的信號,也不要依賴插槽的執行順序(如果給定信號需要多個插槽)。