私はQTを使用していますので、より高度なオプションやベストプラクティスのアプローチがあります。しかし、良い、一般的なC + +や言語に無関心な答えがある場合は、最高のだろう!セッター依存性注入オブジェクトの正しい構築と破壊(Qtを使用した場合)
私はセッター依存性の注入によって権を設定し、オブジェクトのライフタイムを計画して闘争を持っているオブジェクトの構築と破棄を取得しよう。 German Microsoft Blogオブジェクト間のD依存性、責任との相互作用を議論する素敵な比喩で
、私は適応したいこと:
が欲しいマスターガーデナーと見習い・ガーデナー
マスターがあります掘る見習い。最初は、見習いは、ショベルを持って建設されているので、彼は掘ることができますが、それは自分のシャベルを作成することは、見習いのためにあまりにも多くの責任です。
2番目のアプローチでは、マスターは素晴らしいシャベル工場にアクセスし、品質の高いテスト可能なシャベルを生産します。彼は修道院にdigWith(testableShovel)
と言っている。私はマスターが彼を掘るにするために見習いtakeShovel(testableShovel)
(セッター)を伝え、その後、diggBoy()
聞かせセッターDependendyインジェクションの文脈で今
。
マスターが弟子にシャベルを頼むのを忘れたときに、問題が発生しました。今は弟子が掘る道具がないからです。
このケースを処理するには、見習いは、自分の非常に基本的な掘削装置(一対の手などなど)を作成するのが適切なのでしょうか?または、それはコンストラクタ依存性注入(コンストラクタと依存性注入の両方を可能にする)を介して行われるべきですか?手作りのペアを作り/持ち寄って見習いのことを聞いていますが、私はむしろnullptr
-checkを持っているべきですか?
さて、私は私の弟子が、彼はシャベルをピックアップしたら、それらを破壊する、手、の彼自身のペアを作成したと仮定しましょうか?そして、一度彼がシャベルを落とすと、誰がそれらを再現するでしょうか?見習いを脇に置くと、何が破壊されるのでしょうか?
私はまだスマートポインタの話題には触れていません。読んで抱きしめるのは残念です。これまでにありがとうございました。私があなたの答えを完全に理解すると(それまではそれ以上に良いことはありません)、私はそれを受け入れたものとしてマークします。それまでは(うまくいけば近い将来)a *ありがとう*と* + 1 *は十分である必要があります。 – derM