模块化编程(modular programming)是一种软件设计技术,它将软件分解为若干独立 的、可替换的、具有预定功能的模块,每个模块实现一个功能,各模块通过接口(输入输出 部分)组合在一起,形成最终程序。
-
优点:
- 易设计:较大的复杂问题分解为若干较小的简单问题,使我们可以从抽象的模块功 能角度而非具体的实现角度去理解软件系统,从而整个系统的结构非常清晰、容易 理解,设计人员在设计之初可以更加关注系统的顶层逻辑而非底层细节。
- 易实现:模块化设计适合团队开发,因为每个团队成员不需要了解系统全貌,只需 关注所分配的小任务。另外团队可以灵活地增加人手,新人只需直接接手某个模块, 不会影响系统其他模块的开发。
- 易测试:每个模块不但可以独立开发,也可以独立测试,最后组装时再进行联合测试。
- 易维护:如果需要修改系统或者扩展系统功能,只需针对特定模块进行修改或者添 加新模块。
- 可重用:很多模块的代码都可以不加修改地用于其他程序的开发。
-
模块化编程实际上是一条抽象设计原则的具体体现,即分离关注点(Separation of Concerns,缩写为 SoC)原则。所谓关注点,是指设计者关心的某个系统特性或行为;而分 离关注点是指将系统分解为互不重叠的若干单元,每个单元对应于一个关注点。在模块化编 程中,以程序的各个功能作为关注点,模块划分就是分离关注点的结果。一个模块可以使用 另一个模块来实现自己的功能,但除此之外模块之间最好没有交互,这是 SoC 原则的理想 目标。