? 目录??
一.什么是面向过程
1.面向过程的缺点
2.面向过程的优点
补:简单介绍代码与代码之间的耦合度
二.什么是面向对象
三.面向过程与面向对象有什么区别
一.什么是面向过程
面向过程主要的特点是注重?实现这个功能的步骤. 第一步干什么,第二步干什么......
另外面向过程也注重?实现功能的因果关系. 因为......所以......
1.面向过程的缺点
????????面向过程是每一步与每一步的因果关系,其中A步骤因果关系到B步骤.A和B结合起来形成一个子模块,子模块又和子模块之间因为因果关系结合在一起,假设其中?任何一个因果关系出现问题?(错误),此时?整个系统的运转都会出现问题. (代码与代码之间的?耦合度太高,扩展力差?!)
2.面向过程的优点
????????对于小型项目,采用面向过程的方式开发,?效率较高?.可以直接开始干活,写代码来实现功能,并不需要前期对对象提取什么的!
补:简单介绍代码与代码之间的耦合度
代码与代码之间的耦合度就是?代码与代码之间的粘连程度.粘连程度越紧密,耦合度就越高!
举个例子:螺栓与螺母
- 螺栓与螺母?拧在一起?,这个时候的?耦合度低?,因为它们还可以拧开,它们之间存在着接口.
- 如果螺栓和螺母?拧在一起,再用焊条焊接起来?,这个时候的?耦合度就比较高?.因为完全分不开.
二.什么是面向对象
面向对象的开发形式更注重对象A,对象B,对象C,然后组合起来的对象ABC或对象CBA!
????????采用面向对象的方式进行开发,更符合人类的思想方式.人类就是以"对象"的方式去认识世界的.也正是因为这个,面向对象才成为主流的原因!面向对象就是将现实世界分割成不同的单元,然后?每个单元都实现成对象?,然后驱动一下,让?各个对象之间协作起来形成一个系统.
举个例子:对象"张三" , 对象"香烟" , 对象"打火机" , 对象"吸烟的场所"
????????这4个对象组合在一起就可以模拟一个人的抽烟场景.其中对象"张三"可以更换成"李四",对象"香烟",对象"打火机",对象"吸烟的场所"也可以进行更换!这样的话?耦合度低,并且扩展力很强!
三.面向过程与面向对象有什么区别
从?语言方面?出发:
- 对于C语言是完全面对过程的.
- C++是一般面向过程,一半面向对象的,也就是半面向对象的.
- JAVA语言是完全面向对象的!
在上述面向过程与面向对象的介绍里,已经看的很清楚了他们之间的区别,对吧!那么咱们来看一看实际的例子加深一下理解!

假如现在需要开发一个计算机!
- 如果用?面向过程?的方式来开发一个计算机!那么就不存在任何一个部件,所有的东西都融合在一起,成为了一个一体机!如果说计算机的某个地方坏掉了,那么这整个计算机都坏掉了,就直接废掉挂闲鱼了(估计咸鱼挂不上!哈哈哈哈哈)!

- 如果用?面向对象?的方式来开发这个计算机!那么内存条就一个对象,主板是一个对象,CPU是一个对象,硬盘等等电脑任何一个部件都是一个对象!.然后把所有对象组合在一起形成了电脑!这个是个哪个地方坏掉了,我们就找到这个对象,然后换掉那个对象就欧克了!例如内存条快掉了,就换个内存条就木有问题了啦!这样的耦合度就很低,扩展力很强的有木有!
再简单举个例子!咱们洗衣服是很常见的对吧!
- 面向过程?时:我们需要第一步脱衣服 ------> 第二步放到盆里 ------> 第三步倒洗衣粉 ------> 第四步倒水浸泡 ------> 第五步手洗衣服 ------> 第六步清洗衣服 ------> 第七步拧干 ------>第八步晾衣服
- 而?面向对象?时:脱衣服 ------> 找到对象全自动洗衣机(该洗衣机具备洗衣服的功能) ------> 晾衣服
这样一比较,是不是就发现自己爱上面向对象了!简直是神操作!

????????面向对象思想的特点就是?不断的创建对象?,再使用该对象?调用功能?!面向对象虽然是着重对象的,但是他也是?基于面向过程?的!就比如洗衣服,找到了对象全自动洗衣机,但是该洗衣机具备的洗衣服功能是面向过程的,需要代码来实现这个洗衣功能!
(小编也在努力学习更多哟!以后会多多分享哒!)
? ? ? ? ? ? ? ? ? ? ?? ? ? ? ??
希望对友友们有所帮助!!!!
|