他们的区别关键在于是否有对象这个概念,事实上我认为,他们之间并不完全对立,而只是一种思想的进步,面向对象中同样也会涉及部分面向过程的思想。可以这样理解,面向过程中我们把相同的功能抽象成了函数方法,那么面向对象就是更进一步的把所有能抽象的特征都封装进了对象
比如举个例子用程序实现模拟猫抓老鼠,如果是面向过程,我们会说有一只猫,有一只老鼠,老鼠逃,猫追,猫抓住了老鼠,4句话就写完了。如果面向对象,那就有一个类表示猫,一个类表示老鼠,然后猫这个类中又要包含追逐、抓老鼠等方法,老鼠则有逃窜的方法,最后写个方法,实体化一只猫一只老鼠,两个对象,然后分别调用它们里面的方法来实现上述过程。
看起来面向对象把代码变复杂了,但当需要重复实现类似过程但有着简单变化的过程时就能看到面向对象的优点了,当变化多的时候,简单的面向过程方法会需要许多参数去判断当前变化,面向对象只要修改各自的实例化对象就好了,比方说上面的例子中需要描述猫和老鼠的颜色大小等情况的时候,就要在面向过程方法里面加上一堆的参数和代码,每次的修改都是牵一发动全身(例如猫的颜色、老鼠的颜色、猫的大小、老鼠的大小等),面向对象代码就只要给两个类加上对应属性就行了
以上纯属个人理解,非从书本或网络摘抄,因此仅作参考
过程化设计是分模块逐步求精
面象对象是先抽象、再建模,然后生产对象模型、分析依赖
个人理解
面向对象 这个对象不是具体对象而是抽象对象 比如人天天吃饭 激进点动物天天吃 这个抽象的程度看具体需要
面向过程 那就是具体对象 我今天吃饭 我明天吃饭 。。。。。。。
两者还是要相结合 ,抽象完需要抽象的,剩下就用过程式的代码编写