我正在使用QT,所以也許有更高級的選項或最佳實踐方法。但是,如果有一個好的,一般的C++或語言不可知的答案,那將是最棒的!正確構建和破壞注入器依賴注入對象
我試圖讓由的setter依賴注入正確的配置,並有掙扎規劃對象的生命時對象的構造和析構。
在一個German Microsoft Blog一個很好的比喻來討論對象之間的依賴關係d,責任和互動,我想適應:
有一個主園丁和學徒,園丁
主希望學徒挖掘。一開始,徒弟正在建造一把鏟子,所以他可以挖掘,但有人指責說,製造自己的鏟子對於學徒來說太過責任。
現在在第二種方法中,主人可以訪問一個漂亮的剷車工廠,生產質量可測試的鏟子。他繼續告訴學徒digWith(testableShovel)
。
現在二傳手Dependendy注射的方面,我先給師傅告訴徒弟takeShovel(testableShovel)
(二傳手),然後diggBoy()
讓他掏。
問題出現了,當主人忘記告訴學徒採取鏟子,因爲現在學徒沒有工具挖掘。
爲了處理這種情況,我想知道 - 學徒在施工時是否創建了自己非常基礎的挖掘設備(如一雙手)?或者應該通過構造函數依賴注入來完成(允許構造函數和依賴注入)?創造/帶來一雙雙手要求學徒,我寧願有一個nullptr
- 檢查?
現在,讓我們假設我有我的徒弟創立了自己的一雙手,誰必摧之,一旦他拿起鐵鍬的?一旦他放下鐵鍬,誰會重新創造它們?如果徒弟被放在一邊,什麼會被毀滅?
我還沒有涉及智能指針的話題。我想,這是我閱讀和擁抱的東西。謝謝你到目前爲止。只要我完全理解你的答案(在那之前沒有更好的答案),我會將其標記爲已接受。在此之前(希望非常接近未來),* Thank You *和* + 1 *就足夠了。 – derM