我不同意楼上各位的观点.
对于软件开发来说,面向过程才是人们自然的想法,而面向对象则是一种抽象.
为什么这么说呢.
大家在一个项目开始时,做的第一件事是什么?通常是Uses Case吧?Uses Case就是面向过程的.
而面向对象里最基础的就是继承了,接口也是很重要的组成部分.而这两者都是抽象的产物,实际生活中是不存在的.
举个例子,飞机和汽车可以看作交通工具的子类,玩具飞机可以看作飞机的子类.
但是玩具飞机和交通工具就没什么关系了.为什么呢?应为从飞机到交通工具的抽象是一种人为定义.而不是自然产生的.
而面向过程则是往数学上进行抽象,这是所有自然科学采用的方法.因此我们可以说面向过程的分析手段必然是正确的,合理的.但是难度非常大.应为其他学科往数学上抽象都是由顶级科学家来做的.
另外就是每个学科都有大量的问题还没有抽象到数学,有待于未来的科学家来解决,但是软件却不能等.
因此才引入了面向对象这种比较简单的抽象方法.
但是面向对象的方法并不像楼上说的那么完美,有巨大的缺点.
最主要的原因就是他不是基于科学(数学),而是基于经验的.
因此我们没有办法定量的分析一个面向对象的系统,只能定性的泛泛而谈.
举个例子,比如我要求一个系统在有30个特定输入的时候,系统消耗的内存不超过30M.对于面向对象的系统,就不可能在系统设计时确保达到这个目标.应为对于面向对象的系统,在实际系统运行前,完全没有办法计算究竟有多少个对象会产生.
希望大家能了解这两种方法的优缺点,根据实际项目的情况,正确的选择。