0

在我第一次尝试创建一个太大而无法放入一个源文件的程序时,我一直遇到将它分成几个的问题。例如,如果一个模块要被其他几个模块使用,最终会被包含在另一个模块中,我该怎么办。比如说,linear_algebra.cpp(或 .py 或其他)需要 tensor_operations.cpp,它们都需要 matrix_operations.cpp。我应该将 matrix_operations.cpp 包含到其他两个文件中,还是只包含到一个文件中?如果然后我将 matrix_operations 添加到其他模块中,在某些时候突然出现也需要 linear_algebra 怎么办?这整个业务一直让我感到困惑。有时我会弄清楚,但必须有一个“正确”的方式,这样你就不必自己弄清楚了。

那么,我在哪里可以获得有关如何正确执行此类操作的手册(或者至少他们如何称呼它,因为当我说“这类事情”时谷歌不理解我)?

4

1 回答 1

2

听起来您正在尝试避免循环依赖,这是您要搜索的关键术语。

例如,如果您有模块 A 和 B,并且您发现 A 需要引用 BB 需要引用 A,那么您在 A 和 B 之间存在循环依赖关系。(换句话说,如果您将模块之间的关系绘制为带有显示依赖关系的箭头图,A 和 B 之间会有一对箭头。)

解决方案是识别 A 中 B 需要的代码位,将该位重构到新模块 C 中,然后从 A 和 B 中引用 C。(这意味着 B 不需要引用 A更多的。)

所以你从

A <----> B

A -----> B
|        |
\/       |
   /     |
C  ------
   \

通过这样做,您可以从几个大模块变成许多较小的模块,它们之间的耦合更松散。反过来,这应该使您的代码更易于维护和重用。

于 2013-08-04T11:44:28.977 回答