OC学习笔记之面向过程与面向对象

一、面向过程就小桥所知面向过程是一种思维方式。宏观上来讲,用面向过程来看世界,事物都是有关联,存在着因果关系的,有某种规则组织着事物的运动,有起点,有终点,是一种线性的发展过程。在解决现实问题时,总是从开始解决问题(起点)到问题被解决(终点),中间是解决问题的一系列步骤,这些解决问题的步骤用面向过程来编程就是函数。我们只要严格按照函数调用的顺序来调用函数,问题最终就能被解决;代码层上来讲,面向过程的编程中数据存储和对数据的操作是独立存放的。在小桥看来,面向过程的编程解决问题的本质是寻找将问题解决的所有步骤,将每一步做成一个函数,依次调用每一步的函数,就是在解决问题。这样的编程小桥认为是高效的,为什么?因为其中没有任何冗余的代码,每一个函数都用到了,因为这是解决问题中的一个不可少的步骤。二、面向对象面向对象是另一种比较符合人们习惯的思维方式,在面向对象看来,世界是抽象的,万事万物都是对象,都是可抽象化,可对象化的。小桥是一个对象,读者你是另一个对象,我们是相似的,所以两者的抽象就是人,我们抽象的人中的两个对象。宏观上来讲,面向对象的思维认为事物都是独立的,不以外物而改变对象本身,事物的运动是对象本身的行为(方法),对象对外界只开放一个通信的小接口,并不敞开怀抱;代码层上来说,面向对象把数据和对数据的操作都存放在一起,都是对象的组成!面向对象编程本质上是抽象,程序的好坏与抽象的好坏成正比! 还是上面那个例子,从面向对象来看,要完成:小桥早要去教3教学楼的教室上课!找到小桥,课表,教3教学楼这三个对象,然后调用小桥的“去”的方法,要吃早餐还要调用“吃早餐”方法,教3教学楼的“教室布局”方法,在课表对象中的“教室安排”方法,就能完成了。对象间通过接口来通信,但彼此都不了解各自内部的具体情形。某天,辅导员喊小桥去教3上听讲座,她并不会关心小桥是怎么去的,她只知道小桥这个对象内部有去的方法,难道你认为辅导员会这样说:小桥,快点出宿舍,下楼,走小山坡的路,经过图书馆,走进教3教学楼 ,去XXX教室听讲座!现实中没人会这么做! 小桥和,教3教学楼,课表都是独立的对象,平时小桥甚至不喵课表一眼,只有要去上课才看课表找出教室安排,课程安排。,因为它们是独立的对象,独立的操作(函数),再举个例子,,小桥今天早上吃了早餐,但是对于读者来说,你的胃还在那里,还是那样,没有影响到你吧!并不会我吃了,你也就吃了,你的胃里也有食物。虽然你看到我吃可能会嘴会馋!这就是封装性,小桥胃封装在小桥的身体里。而面向过程中要完成相同功能要共享数据(共享一个胃??小桥要吃不下了0.0)三、二者的联系四、最后 由于水平有限,以上只是小桥本人对面向过程和面向对象的粗浅的看法,有不当之处,敬请读者您指正,不胜感激!最后转载新浪blog上的一首有意思的诗来结束本文:

我能抽象出整个世界...

但是我不能抽象出你...

因为你在我心中是那么的具体...(小桥:对象是具体的)

所以我的世界并不完整...

我可以重载甚至覆盖这个世界里的任何一种方法...

但是我却不能重载对你的思念...(小桥:唯一思念的是你?)

也许命中注定了你在我的世界里永远的烙上了静态的属性...(小桥:静态的话,没有实例化对象就分配了内存)

而我不慎调用了爱你这个方法...

当我义无返顾的把自己作为参数传进这个方法时...

我才发现爱上你是一个死循环...

它不停的返回对你的思念压入我心里的堆栈...(小桥:一直调用“爱你”?)

在这无尽的黑夜中...

我的内存里已经再也装不下别人...

我不停的向系统申请空间...

但却捕获一个异常---我爱的人不爱我...

为了解决这个异常...

我愿意虚拟出最后一点内存...

把所有我能实现的方法地址压入堆栈...

并且在栈尾压入最后一个方法---将字符串"我爱你,你爱我吗?"传递给你...

如果返回值为真--我将用尽一生去爱你...

否则--我将释放掉所有系统资源...

给你更多的空间去追求幸福.......(小桥:释放了所有资源,她这个对象都不在了吧,那她不是死了么??)

唯有斯人面上簌簌流下的,是点点无声无行的热泪。

OC学习笔记之面向过程与面向对象

相关文章:

你感兴趣的文章:

标签云: