模块化

来源:互联网 发布:matlab 矩阵复制行 编辑:程序博客网 时间:2024/05/01 00:02

在编写软件的时候,非常提倡模块化的做法,不管是当初的面向过程的编程方式,还是现在面向对象的编程方式,模块化都很重要。而过程和函数更是模块化的产物,至于OSGi中的bundle,更是把模块化提升到新的高度。

模块化应该是一个借鉴的结果,最早的模块化从何而来,已经无从考证,但是看看其他学科中,模块化的存在已经有一段时间了。

比方说建筑学,活动房或者一些新的建筑方式中就体现了模块化的思想,先制造出一些可以直接利用的组件,然后在建筑工地上直接组合,就可以造出一片房子来。

再比方在电子领域,体现的更为突出,集成电路把很多电阻、电容等等小部件组合在一起,这样在制造电器的时候并不需要从头做起,而是直接拿过来使用就好。

模块化的思想基于划分的思想,或者说是分类的思想,就是要把类似的、相互关联的内容放在一起管理,从而从总体上简化过程。而每个模块的内部可能比较复杂,但暴露给外部的接口会比较简单,那样使用的时候,就不用考虑内部的复杂性,从而简化问题。

模块的好处更多在于能够批量生产和重复利用,软件领域有句话说“不要重复制造轮子”,轮子其实就是汽车制造行业中的一个大模块,汽车制造厂更多的是在组装轮子,而不是制造轮子。而软件开发领域同样不需要什么内容都从头开始编写,如果有现成的程序库,大可以拿过来直接使用,那样不仅能够提高效率,还可以降低出错的几率。

生活有时同样可以模块化,比方说对时间的管理,我们可以按照番茄工作法,把时间划分为小的时间段,然后在每个时间段内分配类似的工作或者事情,从而更好地集中精力来做好这件事。再比方,在做各种事情的经验上,其实也是在头脑中形成了不同的模块来放置,并进行了归类。在解决新的问题时,就会把经验从大脑的各个存储领域取出来,组合出一套新的解决方案来。

分解和组合是对模块使用的重要方式,分解可以让我们了解内部的细节,在模块出现问题的时候,可以知道如何解决。而组合可以把小的模块形成大的模块,再把大的模块组合成更大的模块,直到形成我们想要的事物。

模块化体现的哲学思想,有“一生二,两仪生四象,四象生八卦”的思想,也有分而治之的思想,也有大事化小,小事化了的思想,总之这几种都有异曲同工之妙。