有哪些技术可以限制C++项目中的编译依赖关系

What are some techniques for limiting compilation dependencies in C++ projects?

本文关键字:项目 编译 关系 依赖 C++ 技术      更新时间:2023-10-16

在C++项目中,编译依赖关系会使软件项目难以维护。在模块内和模块间限制依赖关系的最佳实践是什么?

  • 远期声明
  • 抽象接口
  • 皮姆普习语

Herb Sutter在其优秀的书籍Exceptional C++中,在第26、27和28项"最小化编译时间依赖性,第1、2和3部分"中对这个主题进行了很好的处理,ISBN:0201615622。

alt文本http://ak.buy.com/db_assets/prod_images/489/30611489.jpg

IMHO,这是最好的C++编程书籍之一。

我认为您需要对此非常小心和周到。通常,您可以通过分离代码和使用抽象接口(例如:函数指针或等效对象)来限制依赖关系,但分离通常会增加脆弱性。例如,可以通过通用抽象接口调用模块,以减少对实际对象实现的依赖,但必须与对象本身同步更新接口,否则代码将在运行时失败。

我想说,在具有明确层次结构的模块中构建大型项目很重要,但在每个模块中,不要过分分解代码来限制依赖关系。如果要改进维护,就必须在减少依赖性和减少代码脆弱性之间取得平衡。

还可以看看:

大规模C++软件设计(Addison-Wesley专业计算系列)