再识面向对象和面向过程

来源:互联网 发布:edf调度算法举例 编辑:程序博客网 时间:2024/05/22 00:48

从接触VB学习计算机开始,就一直听说面向对象和面向过程,老师也不止一次讲过面向对象和面向过程,可是我还是傻傻分不清,现在又学习了软件工程视频,文档编写和UML视频,再次接触了面向对象和面向过程的技术,真的验证了老师和师傅们说的一句话:面向对象和面向过程贯穿我们整个学习过程,需要慢慢钻研,逐渐深入。学习一年了,再谈一谈今天我的理解!

【面向对象】

面向对象技术是一种程序设计的方法,是一种对现实世界中的问题的抽象方式。

【面向过程】

面向过程:顾名思义,研究的是一个过程;在达到同样目的的时候,是以整个过程来研究的,如果其中某一个发生错误,就必须从头开始修改,有时候甚至可能影响整个系统,就是常说的:牵一发而动全身。

【举例理解】

下面我用举例的方法来说明我的认识,如果有不恰当的请大家指正。

实例

例如:前提条件小明和小红都是刚刚睡醒

他们需要完成以下动作
1、小明洗漱:如果小明要完成这个动作,需要的几个步骤:起床-穿衣服-下地-到洗手间-洗漱
2、小明烧水:如果小明要完成这个动作,需要的几个步骤:起床-穿衣服-下地-到厨房-接水-开火-烧水
3、小明做饭:如果小明要完成这个动作,需要的几个步骤:起床-穿衣服-下地-洗菜-炒菜
4、小红去上学如果小红要完成这个动作,需要的几个步骤:起床-穿衣服-下地-洗漱-吃饭-背书包-上学
大家应该看到我以上写的东西,想说真是复杂繁琐,还有很多重复的内容,是的,这才是重点,知道这个我想理解面向对象和面向过程就容易些。

分析

1、2、3、4都是过程,就是达到一个目标需要经过的详细步骤,那么那些重复的部分“起床-穿衣服-下地”就显得冗余,我们就可以想办法把这些重复出现的内容封装起来复用,需要它的时候直接调用。

比如我们可以分析小明和小红都是人,可以抽象出一个类People,“起床-穿衣服-下地”都是他们发出的动作,同样可以拿出来一起共享,是他们都可以做到的方法。然后不同的行为成为自己特有的部分,这样就会方便很多吧!
我们把小红和小明都封装在人这个类中,共同的动作成为人的方法A,只写不同的部分就可以了。

以上行为的优化

5、P(小明洗漱):A-到洗手间-洗漱
6、P(小明烧水):A-到厨房-接水-开火-烧水
7、P(小明做饭):A-到厨房-洗菜-炒菜
8、P(小红去上学):A-洗漱-吃饭-背书包-上学

这样是不是简单了呢,这就是面向对象的研究。


小红、小明就是People中的对象,我们针对小明和小红进行研究分析,就是面向对象的研究,就是面向对象的技术。
通过上面这个例子重新认识了面向对象和面向过程,可以看出各有各的特点,面向对象和面向过程不是单独存在的,他们相辅相成,这就是我现在的理解,如果有不对的地方希望大家帮我指出来。

此文以实例来说明面向对象和面向过程,详细部分待续……




0 0