那裏的專業人員,使用智能指針在C++中的「觀察者模式」?
這是我第一次向這個董事會發佈一個問題,這個問題在過去幫了我很多。我仍然是編程新手,並且在過去幾個月裏一直在努力學習很多關於編程軟件開發的知識。
我最近解決了「C++ 11-Smart Pointers」這個主題,並決定重寫前幾周我學到的所有設計模式,包括使用shared_ptr & weak_ptr進行資源管理的「Observer Pattern」。
當我試圖編寫一個簡單的觀察者模式的實現時(比如在頭部的設計模式或E.Gamma的設計模式中),對於可觀察主體和觀察者都使用接口類,每個具體類,我收到來自Visual Studio的各種錯誤消息。 我只是不明白如何結合shared_ptr和weak_ptr在這種模式,這可能是由於我還沒有完全理解這兩者的組合。
可惜的是,甚至在互聯網上徹底搜查沒有提供給我,可以作爲我的一個方向的「使用智能指針觀察者模式」的一個簡單的例子。
所以我在想,如果你們中的一個人會知道在哪裏可以找到這樣一個簡單的implmentation或會這麼好心給我提供你自己的。無論是:-)
非常感謝
coderAndi
也許我們可以幫助您與您approcah如果你告訴我們,你的努力實現該模式,你遇到了錯誤。簡而言之:迄今爲止你嘗試過什麼? –
@ArneMertz他正在倒退:在定義問題之前選擇解決方案(智能指針)。事實上,觀察者模式是智能指針不適用時設計的一個主要示例。 –
您可以將Observer-> Observable連接看作資源並使用智能指針來管理該資源。但我認爲這不是他想要的;-) –