我们有一个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