我們有一個C++解決方案(VC++ 2005),它廣泛使用了第三方映射庫。我們正在創建包裝庫,以便我們可以在解決方案中使用替代映射庫,而無需爲每個映射庫重寫 - 每個包裝庫都具有相同的API但封裝了不同的第三方映射庫。用包裝庫替換庫的使用
我們正在以迭代方式進行此操作,我想知道如何確保在我們重構使用特定映射庫的類到使用包裝器時,所有使用/引用都會更新。根據定義,許多包裝類可以與包裝庫類互操作,所以我們可能很容易錯過更新MapXYZ :: Attribute的一個實例到OurMaps :: Attribute,它會一直工作,直到我們切換映射庫。
是否有任何工具或流程可以爲這種情況提供建議?
如何定位包裝庫X的包裝器庫的特定實現_不包含X的頭文件?例如如果我在STL和Win32上編寫兩個包裝庫,STL版本將不得不包含stl頭文件或者它不會編譯? – 2013-05-02 11:11:12
仔細閱讀 - 我沒有說它不應該包含所有包裝的lib頭文件*,我說它不應該在它的頭文件中包含它們*。當然,你必須將它們包含在源代碼中,但將它包含在頭文件中意味着你將它們間接包含在項目的其餘部分中,從而消除封裝類給出的主要好處:封裝。 – 2013-05-02 12:59:11