为了方便读者理解模块化的概念,先看一个现实生活中的模块化的例子,例如谷歌的模块化手机,如图所示。
从图中可以看出,模块化手机分为多个模块,当某个模块损坏时就可以单独替换,也可以分模块进行手机升级。假如是一体机,某个部件损坏就要直接把手机换掉,这样的成本是不是很大?
从生产角度,模块化是一种生产方式,这种生产方式体现了两个特点:
(1)生产效率高:
灵活架构,焦点分离,多人协作互不干扰;方便模块间组合、分解。
(2)维护成本低:
可分单元测试;方便单个模块功能调试、升级。
现在已经清楚了现实生活中的模块化,其实在程序中也有很多模块化的例子,例如程序中的常见日期模块(Date)、数学计算模块(Math)、日志模块、登录认证模块、报表展示模块等,所有模块组成一个程序软件系统。
同样,当某个模块出现问题时,只需要修改当前模块,而不影响其他模块的代码。程序模块化与现实生活中的模块化相似,从程序开发角度,模块化是一种开发模式,也有两个特点:
(1)开发效率高:方便代码重用,对于别人开发好的模块功能可以直接拿过来使用,不需要重复开发类似的功能。
(2)维护成本低:软件开发周期中,由于需求经常发生变化,最长的阶段并不是开发阶段,而是维护阶段,使用模块化开发的方式更容易维护。