面向过程与面向对象
【1】面向过程
“面向过程”是一种以过程为中心的编程思想(我怎么老觉得这是一句屁话!没办法,我们的教科书它就是这么“高雅”!)。
“面向过程”也可称之为“面向记录”编程思想(这句话似乎具体了一步,但是还是不怎么清楚。肿么办?再查资料呗!)。
我们知道计算机莫非就是对现实世界的模拟。那所谓的这种思想肯定可以映射或者说等价于现实中的具体情形。
哦,我知道了!面向过程即就是直接对某件事情整个发生的经过进行模拟的一种编码方式。
很早的时候,我们写作文都有记叙文,而记叙文有六个要素:时间,地点,人物,事情的起因,经过,结果。
面向过程就类似于记述事情。用编程语言“记述”现实中某件事情发生的整个过程,遵从语言规范同时达到可以最逼真的模拟实现过程。
有的好书上就把 早上起床 至 到学校 这个过程举例如下:
(1)起床
(2)穿衣
(3)洗脸刷牙
(4)去学校
这四步就是一步一步的完成,且有一定的先后顺序,整个流程进行记录也就是所谓的一种过程编程方式。
【2】面向对象
对象?什么是对象?这个概念怎么比上面更抽象?到底什么是对象?我们说:“一切皆对象!”
开发编译器的前辈在设计它的时候,就存在了内置类型(int,char,double等)。那么,顺着这个思路深入分析,归纳总结。
万事万物都可以分别归类然后抽象为一种特定的数据类型,这也就是类的形成。
对象就是类的一种实例。所以反过来说一切都是对象。其实,比对象更抽象的是类。
一个类就代表了一种数据类型,一种数据类型就蕴含着一种现实对象。
我们知道,类由属性成员变量以及行为特征函数组成。
属性是对个体一种本质差异的抽象,函数是对同类所有个体一种具体行为的实现。
属性是对对象个性的区别描述,函数是对对象共性的行为体现。
关于类与对象,图示如下:
关于面向对象思想,图示如下:
【3】面向对象与面向过程
面向过程其实是最为实际的一种思考方式。面向对象的成员函数具体实现也是含有面向过程的思想,可以说面向过程是一种基础方法。
同一问题,面向过程的思想观察角度可以说纵向的,而面向对象的思想认识角度可以说是横向的。前者是从点切入,后者由面构建。
但是,其实我们都知道纵横都是相对而言,没有明确界限。
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。
一个博大,一个精深。可以这么理解。
【4】面向对象和面向过程的优缺点
参见随笔《面向对象和面向过程的优缺点》
Good Good Study, Day Day Up.
顺序 选择 循环 总结