什么是模块?

5
我理解模块的概念有些困难。它们是翻译单位吗?类似于.cc文件和.h文件吗?
在我的教科书中,模块被描述为:“模块化设计由一组模块组成,这些模块分别开发和测试。模块化编程实现模块化设计,并受到过程式语言和面向对象语言的支持。C编程语言通过由函数组成的库模块支持模块化设计。stdio模块提供输入和输出支持,同时隐藏其实现细节;通常,scanf()和printf()的实现以二进制形式与编译器一起发布。stdio.h头文件提供我们需要完成源代码的接口。
本章介绍了如何使用C++在面向对象语言中创建模块,如何单独为每个模块编译源代码,以及如何将编译后的代码链接为一个可执行的二进制文件。该章还以一个模块单元测试的示例结束。”
模块:
“一个良好设计的模块是一个高度凝聚但松散耦合的单元。该模块解决程序解决方案的一个方面并尽可能隐藏细节。编译器将模块的源代码相对独立地转换为其自己的二进制代码单元。”

8
也许需要一本更好的教科书——目前 C 和 C++ 都没有实现模块化。但它们确实提供了构建 所需的工具。 - user2100815
3
“模块作为语言特性”,“模块作为软件结构的一种方式”,“模块作为组织源代码的一种方式”等等,它们都是不同但相关的概念。也许你甚至不知道“模块”可以有这么多含义。你引用的文本并不是很好。 - user2486888
6
我正在点赞这个问题,它看起来非常合理。但我真希望我能够踩一下这本教科书。 - Lightness Races in Orbit
@NeilButterworth:我们正在使用模块TS。大约是在上周左右开始的。 - Cheers and hth. - Alf
这句话说了很多无关紧要的内容,你可以将所有“模块化设计”的实例替换为“面向对象设计”,将“模块”替换为“对象”,它仍然是一个完全有效的陈述。 - Joseph Franciscus
显示剩余3条评论
1个回答

7
在这个上下文中(即一般的英语意义),模块是指附着在其他东西上形成一个整体的东西;这就是定义,没有进一步的说明。
如果你读到这里存在一个叫做“模块”的概念被嵌入到C ++中,那么并没有(至少目前还没有)。作者只是描述了当你将不同的库和程序组合到一个完成的程序中时,“事情是如何聚合在一起”的过程。
你引用的措辞实际上并没有提供任何有价值的内容。

@Oliv:如果你喜欢的话 ;) - Lightness Races in Orbit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接