一个理解:面向对象的出现是为了解决大型软件项目中代码复用性和代码可维护性的两个关键问题;相对于面向过程的语言(C/basic等)将要解决的问题的模型构建于头脑中,而写出的代码是基于机器的空间,面向对象语言在分析问题时候的层次更高一层,将要解决问题的模型利用class的概念表示出来,这样我们利用UML建模工具可以帮助我们建模。类似的,在学习软件架构的过程中,目前流行的SOA、面向方面等思想的意义在于将我们分析系统或者问题的层次提高,最主要的目的就是要让我们能够构建更大规模的软件系统,能够尽可能得复用已有的代码和前人的成果。
一个问题:Linux内核从出现的时候到现在,不是纯的面向过程构建的软件系统;当然,也不是纯的面向对象构建的软件系统。以内核现在百万级的代码量,在没有利用面向对象的指导下,它如何存活得如此良好?是开源组织的力量吗?