下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向过程编程的思想和方法一、 引言随着更加方便的面向对象编程的出现,面向过程编程逐渐被人们冷落。但是在面向对象编程出现之前,面向过程编程的高效和清晰的数据结构影响了软件开发的发展历程。本文主要介绍了什么是面向过程编程的思想和方法,分析其特征及优缺点,并且根据面向过程编程和面向对象的编程的进行了比较。二、 面向过程简介:面向过程编程将程序分成了数据和处理函数两部分,程序以处理函数为核心,如果要执行什么操作,就将数据传给相应的处理函数,返回我们需要的结果。也有的人把面向过程定义为:算法 + 数据结构,我觉得也很准确,算法就是处理函数,而数据结构即为我们所说的数据,本质上是一样的。面向过程编程所有的
2、数据和处理函数都是公有的,整个编程的思维过程就是定义数据,定义处理函数,然后将数据传给处理函数进行处理,处理函数之间也可以互相调用,数据和处理函数紧密耦合,共同为我们所开发的项目服务。三、 面向过程的编程思想:“面向过程”(Procedure Oriented)是一种以事件为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过
3、程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法.对比较面向对象,面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织.比如拿学生早上起来的事情来说说这种面向过程吧.粗略的可以将过程拟为: (1)起床 (2)穿衣 (3)洗脸刷牙 (4)去学校 而这4步就是一步一步的完成,它的顺序很重要,你只须一个一个的实现就行了.而如果是用面向对象的方法的话,可能就只抽象出一个学生的类,它包括这四个方法,但是
4、具体的顺序就不能体现出来面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想。面向过程最重要的思想是模块化、结构化的思想方法。当程序规模不是很大时,面向过程的方法会体现出一种优势,因为程序的流程很清楚,所以,按着模块与函数的方法可以很好的组织,执行效率也比较高。按照模块化的思想,我们会先根据用户的需求进行分析,解析程序的各项功能结构,再根据程序的运行过程将其分解成若干个顺序执行的模块,每个模块都是由若干函数组成,通过函数的依次调用实现模块的功能。整个项目经过这样的模块化后,开发人员就可以开始有目的的逐个模块、逐个函数的去实现,进而完成整个项目。而对于结构化的思想,它
5、重点强调的是程序设计风格和程序结构的规范化。在面向过程的结构化程序设计中,“模块”是构成程序的基本单元,好比是一座大楼中的各个房间,有办公室、实验室、会议室、门房,各自独立,但共同组成了大楼。有了这样的模块,程序不需要写得很长,将一段功能独立的代码写成一个函数,让别的函数调用就ok了。四、 面向过程的编程方法:1. 表述:面向过程的编程方式必须在编程之前将解决问题的流程确定下来,这是一种很不灵活的方式。我们解决一个问题的时候,是很难开始在一开始就把流程定的很合理的。面向过程编程中最常用的一个分析方法是“功能分解”。我们会把用户需求先分解成模块,然后把模块分解成大的功能,再把大的功能分解成小的功
6、能,整个需求就是按照这样的方式,最终分解成一个一个的函数。这种解决问题的方式称为“自顶向下”,原则是“先整体后局部”,“先大后小”,也有人喜欢使用“自上向下”的分析方式,先解决局部难点,逐步扩大开来,最后组合出来整个程序。其实,这两种方式殊途同归,最终都能解决问题,但一般情况下采用“自顶向下”的方式还是较为常见的,因为这种方式最容易看清问题的本质。面向过程的软件工程方法基于“自顶向下,逐步求精”的原则来完成团结开发各阶段的任务。程序的执行过程主要由顺序、选择和循环等控制结构来控制。2. 特征及优缺点面向过程的编程具有以下一些特点:1) 强调做(算法); 2) 大程序被分隔为许多小程序,这些小程
7、序称为函数; 3) 大多数函数共享全局数据; 4) 数据开放的由一个函数流向另一个函数。函数把数据从一种形式转换为另一种形式。面向过程编程的优点:面向过程的编程(OPP)优点是程序顺序执行,流程清晰明了。其次面向过程的性能比面向对象要高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。所以当我们开发一个不是很复杂的程序,同时对性能方面又有比较高要求,这时候面向过程就显得十分高效了。面向过程编程的缺点:1) 主控程序承担了太多的任务,主控和模块之间的承担的任务不均衡。2) 重用性低,面向过程定义的函数不方便
8、扩展。3) 封装性不好,不能避免外部错误对它的影响。程序的安全性正确性没法保障。五、 面向过程和面向对象的区别面向过程和面向对象的区别并不像人们想象得那么大,面向对象的大部分思想在面向过程中也能体现。但面向过程最大的问题(也许是唯一先天的缺陷)在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃。 面向过程和面向对象这两种编程思想的区别在于:他们对于需求的理解是不一样的。面向过程编程人员,他们把需求理解成一条一条的业务流程,询问用户的业务流程,然后他们分析这些流程,把这些流程交织组合在一起,最后实现了需求;面向对象的编程人员,他们把需求理解成一个一个的对象,他们会询问用户“这个东西叫做什
9、么,他们从哪里来,能做什么事”,然后他们制造这些对象,让这些对象互相调用,符合了业务需要。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是以功能来划分问题,而不是步骤,是把构成问题事物分解成各个对象,简历对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。以下两方面, 面向对象和面向过程会有区别1、封装性上:面向对象的封装将一系列的数据和方法集中在类中面向过程的封装, 方法一般不做封装, 数据用Struct封装, 方法和数据分离2、代码复用性上面向对象利用继承的方式复用面向过程只能以普通的函数
10、复用任何编程思想或者是方法都不可能独立存在。对于面向过程与面向对象也是一样。看似你抛弃了面向过程,全心全意的应用面向对象,其实很大程度上,都是在二者结合使用,你不可能把他们区分的那么细致,二者之间也没有明显得界限,都是各有所长。在你应用面向对象的过程中,不知不觉的就用到了面向过程,毕竟,面向对象是建立在面向过程的基础上的。六、 面向过程的个人理解:自从有了面向对象,很多人都不愿意再去提面向过程,觉得这个老古董已经一无是处,做软件开发有面向对象就足够了。然而我觉得事实上不是这样的,面向对象是在面向过程的基础上发展起来的,的确,他有很多面向过程所没有的优点,就目前来看,在软件开发中的应用也是相当的广泛。但决不能因此额抹杀了面向过程。目前做软件开发的IT人员很大部分用的都是面向对象的思想和方法,对于面向过程,除了做小程序和大师级软件工程师追求效率这两部分人以外已经很少有人用了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020版 沪教版 高中音乐 必修1 音乐鉴赏 下篇《第五单元 声情戏韵》大单元整体教学设计2020课标
- 桶装水店员工合同
- 提前终止租赁合同模板
- 2025年南充道路运输货运考试题库
- 2025年阳泉货运从业资格证考试题库答案
- 《壁纸图集》课件
- 2025年烟台b2从业资格证模拟考试题目
- 2025年孝感道路货运从业资格证模拟考试
- 2025年池州考货运资格证考试内容
- 集团资金支付与收款风险控制
- 英语口语 购物课件
- AGV智能小车循迹系统的建模与仿真
- 自动喷水灭火系统联动试验记录
- 设备机房出入登记表
- 车辆状况说明书(车辆信息表)
- 附录1职业倾向自我探索SDS汇总
- 六三制青岛版三年级科学上册第六单元《测量工具》全部课件(一共3课时)
- 腮裂囊肿的诊断及治疗介绍学习ppt
- 梅花易数教学用35张幻灯片
- 会计师事务所信息安全管理制度规定
- 通达信指标公式编辑教程大全(函数+指标+实例)
评论
0/150
提交评论