


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
参考资料面向对象与面向过程两种程序设计方法的比较与思考1引言目前,程序设计方法有两大类,一是面向过程的结构化程序设计方法,二是面向对象的程序设计方法。这两种方法的主要指导思想是什么,各有什么优势和特点,在学习和实用中各存在哪些问题。本文想对这一系列问题给出自己的思考。2两种程序设计方法简介面向过程的程序设计方法将解决问题的重点放在模拟问题的过程方面,它在解决问题时采用功能分解方法,即将一个系统看作一些功能块的组合,这些功能块可以被进一步分解,直到参与设计和编程的人员可以理解的步骤和过程为止。功能分解最终产生的模块和子模块作为程序构成成分的过程组件。当一个模块被分解为一系列的子模块之后,这些子模块的执行过程可以是顺序(一个子模块紧接着另一个子模块之后执行)、选择(依据一定的条件执行某个模块)、循环(在特定的条件成立时重复执行某个子模块)。面向对象的程序设计方法是通过为数据和代码建立分块的内存区域来提供对程序进行模块化的一种方法。这些模块可以被作为样板在需要时建立其拷贝。而所谓对象实际上是计算机内存的一块区域,通过将内存分块,每个对象在功能上互相之间保持相对独立。这些内存块不但存储数据,也储存代码,这对保证对象是受保护这一点很重要,只有局部于对象中的代码才可以访问存储于这个对象中的数据,对象之间只能通过函数调用相互通信。3两种程序设计方法的特点结构化程序设计方法的指导思想是提高程序的易读性和易维护性,追求结构良好的程序设计方法,而结构良好的程序主要体现在三方面:具有单入口,单出口的性质;不包含不会停止执行的语句,即执行时间是有限的:没有无用语句,即程序中所有语句都有被执行的机会。结构化程序设计方法只允许全部程序均由顺序、选择和循环三类基本结构构成。而顺序、选择和循环都具有结构良好程序的上述三个主要特征,所以,以这种方法设计出来的程序,实际上是由许多语句串起来的顺序结构,由于每个语句只有一个入口,一个出口,所以来龙去脉清楚,段落层次分明,即使程序长一点,仍能保持程序易读性和正确性。面向对象程序设计方法的主要特点是:程序=对象+消息。面向对象程序的基本元素是对象。面向对象程序一般由类的定义和类的使用两部分组成。程序中的一切操作都是通过向对象发送相应的消息来实现的,对象接收到消息后,启动有关方法完成相应的操作。一个程序中涉及到的类,可以由本程序自己定义(即本程序的设计者自己定义)也可以使用现成的类(包括所用语言系统为用户提供的类库中的类和他人已定义好的类).面向对象设计方法还可以有如下几方面的特点:一是可以控制程序的复杂性,这种方法把有关数据及其上的所有操作集中在一个个类中,这样,在程序中任何要访问这些数据的地方都只需简单地调用而不需要再重新编码,这就有效地控制了程序的复杂性。二是可以增强程序的模块性。类是一种抽象数据类型,类作为一个程序模块,要比面向过程范畴的子程序的独立性强得多。三是可以提高程序的重用性。类是含有数据和程序的独立模块,它完全可以作为一个大粒度的程序构件,供同类程序直接使用。特别是,父类与子类之间的继承关系,也构成了程序重用的重要方式。四是可以改善程序的可维护性。由于对对象的操作只能通过消息传递来实现,所以,只要消息模式即对应的方法界面不变,方法体的任何修改不会导致发送消息的程序的修改。这显然对程序的维护带来了方便。五是能对现实世界的分类系统进行自然的描述,用类来直接描述现实世界的类型,可使计算机系统的描述和处理对象从数据扩展到现实世界和思维世界的各种事物,这实际上大大扩展了计算机系统的描述和处理范围。4两种程序设计方法在学习和实用中的存在问题面向过程程序设计方法存在一些固有的缺陷,主要表现在:l)程序的可重用性差现在的应用程序变得越来越大,越来越复杂.但其中有很多重复性的工作,代码重用成为提高效率的关键。采用面向过程的程序设计方法,每次程序员进行一个新系统的开发,几乎都要从零开始,并且要针对具体问题做大量重复而繁琐的工作。即使代码重用,也只能进行简单的拷贝,若稍有不同的话,就必须一行一行的修改。这种方法不能直接继承引用已编好的应用程序的某些部分。2)程序的数据与操作相分离面向过程的程序设计方法,其程序的数据和有关操作是分开的,而且对同一数据的操作往往分散在程序的各处,如果一个或多个数据的结构发生了变化,那么这种变化将波及程序的很多部分甚至整个程序,致使许多函数和过程必须重写,严重时会导致整个软件结构的崩溃。3)数据处理范围较小计算机的应用领域已从数值计算扩展到人类社会的各个方面,所需要处理的数据已从简单数字和字符发展为具有多种格式的多媒体数据,如文本,图形,图像,影像,声音等。面向过程程序设计方法所能描述的数据类型已无法应付,数据量的增大和程序规模的日益庞大也使面向过程的程序设计方法有更多地方显示出局限性。4)通讯机制几乎空白现在的硬件发展飞速.并行处理,分布式,网络和多机系统将成为程序运行的主流环境,而这些环境的一个共同特点就是具有一些有独立处理能力的节点,节点之间有通讯机制,即以消息传递进行联络,而这方面面向过程程序设计方法几乎没有应变能力,难以支持。面向对象程序设计方法在学习和实用中也存在一些问题,主要表现在以下几方面:1)程序不易理解理解程序的关键是能重构“源设计图”,并掌握原设计人的设计思想和方法、策略。如果这些思想、方法、策略都集中在一段不大的程序里,那么理解起来较容易,但面向对象程序设计方法开发出来的程序往往存在于不连续的程序段中(比如一个方法可能有一段程序,而一个对象中可能有多个各自独立的方法),这样容易使维护人员产生错误理解,从而大大增加理解应用程序的难度.2)程序的依赖性分析有难度由于面向对象程序设计方法广泛使用继承机制,从而对分析程序的依赖性(包括其中的调用及数据流的相互关系)增加了难度。继承关系允许多层关系,如果维护人员需要检查一个消息发送,就需要检查若干层,才能确定该消息的接收者(即某个对象)。这种检查无疑增加了分析程序依赖性的难度。3)初学者入门有困难面向对象程序设计方法基本概念都很抽象,而可供用户使用的类也是种类繁多,结构复杂。可视化编程部分没有一定的理论学习后进行编程有困难,而代码编程部分又涉及许多传统程序设计思想,若没有传统程序设计思想基础不能直接使用。5结束语面向过程与面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中doing公开课课件
- 小区园林景观绿化工程施工方案
- 高一河流地貌课件
- 北京市八年级上学期期中考试英语试卷含参考答案 (5份)
- 离婚子女抚养费及全面生活支持协议范本
- 离婚协议书中子女抚养权变更争议诉讼协议范本集锦
- 留学语言学校申请咨询服务协议
- 成人职业素养培训咨询服务合同
- 家电维修管理制度规范
- 如何高效备考考研复试
- 3.1网络改变世界 议题式课件 统编版道德与法治八年级上册
- 走进焊接 课件 2.1百花齐放推陈出新-焊接方法
- (2025)中国汉字听写大赛全部试题库及答案
- 卵巢癌的课件
- 北京市律师协会律师办理法律尽职调查业务操作指引
- (2025年标准)会员销售协议书
- 2025至2030中国专业图片存档和通信系统(PACS)行业项目调研及市场前景预测评估报告
- 妇产科临床路径培训课件
- 编辑出版校对试题及答案
- 2025一级造价工程师《案例分析(土建、安装)》学霸笔记
- 化工仪表基础知识培训课件
评论
0/150
提交评论