2011-05-16 14 views
0

如果你看看我一直在爲dependency injection in C++工作的庫,我最近添加了an example,它模仿我爲一個真實項目創建的東西:能夠直接注入應用程序配置。什麼時候可以注射進樣器?

這一切都工作正常,因爲構造函數只是要求一個ConfigItem <ConfigTag>類型,這是奇蹟般地交付。

當我需要同時訪問它們中的所有內容(比如配置對話框)時會出現問題。

我想出的愚蠢解決方案是使用預處理器生成一個類,該類獲取構造函數中的所有配置項,如here所示。

如果我可以注入注入器,那麼這個問題將會「很好地」解決,因爲我只需要生成代碼來收集所有的ConfigItem實例,如here所示。

請注意,所有ConfigItems都在單例範圍內。

希望這個問題有道理:你會如何做到這一點?

+0

從描述這聽起來像概念這個問題:http://stackoverflow.com/questions/1891778/injecting-the-dependency-injector-using-dependency-注入我不是C++程序員,所以我可能會誤解。 – 2011-05-16 15:44:37

+0

我認爲它是相似的,但我必須想象有更好的答案! – cheez 2011-05-16 17:01:40

回答

0

聽起來像是你已經重新發明了Service Locator Pattern

+0

我不喜歡那個!這就是爲什麼我不確定我能做得更好。它要麼生成一個具有顯式依賴性的類(原則上可能有數百個!),要麼生成使這個依賴性隱含的代碼。 – cheez 2011-05-16 16:57:31

相關問題