模块化编程的评估与实践
1. 模块化编程概述
模块化编程的核心思想是将程序构建为一组可组合的构建块,以此形成解决方案。确定构建块的策略多种多样,构建块可以是常用函数(子程序库)、不同的计算阶段(基于流程图中的模块)、不同的系统状态(基于状态图中的模块)、具有相应访问方法的对象、控制循环、系统中可能发生变化的部分,甚至可以是负责实现系统特定部分的程序员。
由此可见,最佳的模块化方法取决于具体情况。仅仅将程序随意拆分成小块并不一定有益,关键在于这些小块是否合理。从宏观层面看,如何将系统拆分为模块属于架构设计问题。部分模块应与软件架构中的模块相对应,而在更精细的层面上,其他模块应有助于使设计更加清晰。
一个具有良好模块化的程序通常应具备以下特性:中小规模、高内聚、低耦合、良好的信息隐藏、良好的可组合性以及适度的复杂度。接下来,我们将逐一探讨这些特性。
2. 模块特性评估
2.1 小规模
在一定范围内,模块规模越小越好。但在大多数编程语言中,将整个程序拆分为单行子程序并非明智之举,因为每个编程块的规模过小,无法在单个模块中包含一组相关操作。不过,像 APL 和 Forth 等语言是个例外,这些语言的符号表示相对紧凑,允许在一行代码中执行多个不同操作,并且能够在不明确给出参数列表的情况下在函数之间传递参数。
对于用 C 或 C++ 编写的嵌入式系统,模块规模应合理分布。一些小型辅助函数或方法可能只有几行代码,许多过程的长度可能在半页到一页之间,最复杂的模块也应控制在两页以内。如果一个模块的打印篇幅超过两页(约 120 行代码,包括注释),则可能过长,需要重新设计为更小的块。
模块长度
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



