6

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

4

4 回答 4

12
于 2008-10-09T18:09:49.343 回答
6

Herb Sutter 在他的优秀著作Exceptional C++ , ISBN: 0201615622的第 26、27 和 28 条“最小化编译时依赖,第 1、2 和 3 部分”中对这个确切的主题进行了很好的处理。

替代文字 http://ak.buy.com/db_assets/prod_images/489/30611489.jpg

恕我直言,这是最好的 C++ 编程书籍之一。

于 2008-10-09T19:17:32.793 回答
2

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

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

于 2008-10-09T18:17:26.753 回答
2

也看看:

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

于 2008-10-11T00:48:17.950 回答