什么是面向对象?什么是面向过程?
用你和你爱人OOXX来比喻
面向过程就是一步一步的来,先要调情,然后开始互相爱抚,然后进入前戏.
热身动作完成后就可以进入主题了,OOXXOO,最后结束.
这样先干什么然后干什么分的很清楚.所以面向过程会有一个主线把所有的事件给串起来...
面向对象就要把这个事情分为很2个对象,比如有男人,女人(可以看成是类)
当然他们之间会有交互,也会有各自的本领(也就是方法)
在做的时候,这2个对象互相调用发生关系(类之间的交互)
但是本质上,所有可以使用的手段都已经包含在男人和女人这2个对象里面了
因此面向对象的实质是对象之间的互相调用,你搞搞我,我搞搞你....
虽然这么看起来面向过程要比面向对象high的多.
但是事实上面向对象比面向过程看起来更有条理,代码也更明.
面向对象是以数据为中心,而面向过程以功能为中心.
数据相对于功能来说,具有更高的稳定性,面向过程最大的弊端是程序往往建立在数据的直接处理之上,从程序任何地方都可以对数据进行处理,如果工程量大而复杂,会导致数据的网状调用,最后使软件错误互相关联,从而导致软件危机.
面向过程好象厨师烧菜,菜是数据,厨师的手艺就是方法,而且这个厨师只关注于提高自己的手艺,当用到要做的菜时,再去买再去洗等等,这样肯定会比较乱.
而面向对象,就好象这个厨师配有专人帮忙买菜,把菜洗干净,厨师只专注于做好菜.