17、模块化编程的评估与实践

模块化编程的评估与实践

1. 模块化编程概述

模块化编程的核心思想是将程序构建为一组可组合的构建块,以此形成解决方案。确定构建块的策略多种多样,构建块可以是常用函数(子程序库)、不同的计算阶段(基于流程图中的模块)、不同的系统状态(基于状态图中的模块)、具有相应访问方法的对象、控制循环、系统中可能发生变化的部分,甚至可以是负责实现系统特定部分的程序员。

由此可见,最佳的模块化方法取决于具体情况。仅仅将程序随意拆分成小块并不一定有益,关键在于这些小块是否合理。从宏观层面看,如何将系统拆分为模块属于架构设计问题。部分模块应与软件架构中的模块相对应,而在更精细的层面上,其他模块应有助于使设计更加清晰。

一个具有良好模块化的程序通常应具备以下特性:中小规模、高内聚、低耦合、良好的信息隐藏、良好的可组合性以及适度的复杂度。接下来,我们将逐一探讨这些特性。

2. 模块特性评估

2.1 小规模

在一定范围内,模块规模越小越好。但在大多数编程语言中,将整个程序拆分为单行子程序并非明智之举,因为每个编程块的规模过小,无法在单个模块中包含一组相关操作。不过,像 APL 和 Forth 等语言是个例外,这些语言的符号表示相对紧凑,允许在一行代码中执行多个不同操作,并且能够在不明确给出参数列表的情况下在函数之间传递参数。

对于用 C 或 C++ 编写的嵌入式系统,模块规模应合理分布。一些小型辅助函数或方法可能只有几行代码,许多过程的长度可能在半页到一页之间,最复杂的模块也应控制在两页以内。如果一个模块的打印篇幅超过两页(约 120 行代码,包括注释),则可能过长,需要重新设计为更小的块。

模块长度

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值