![面向过程与面向对象程序设计_第1页](http://file4.renrendoc.com/view/bdb1b86c7f69511c7104dcebf98fc401/bdb1b86c7f69511c7104dcebf98fc4011.gif)
![面向过程与面向对象程序设计_第2页](http://file4.renrendoc.com/view/bdb1b86c7f69511c7104dcebf98fc401/bdb1b86c7f69511c7104dcebf98fc4012.gif)
![面向过程与面向对象程序设计_第3页](http://file4.renrendoc.com/view/bdb1b86c7f69511c7104dcebf98fc401/bdb1b86c7f69511c7104dcebf98fc4013.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向过程与面向对象程序设计一、 面向过程的程序设计面向过程(ProcessOriented)这个词是在面向对象(ObjectOriented)出现之后为与之相对而提出的,其实它在以前基本被叫做“结构化编程”。早期的程序设计,大量使用共享变量(全局变量)和GOTO语句一类的东西,后来有人证明所有的程序流程都可以使用三种基本流程(顺序、选择、重复)来实现,并提出“GOTO有害说”,从此人们进行编程的方式发生重大变化,每种语言都提供这些基本控制结构的实现方式,并提供把数据访问局部化的能力,以及某种形式的模块化/分别编译机制。在这些基础上,人们所进行的编程活动基本是通过编写用于不同目的的功能函数/过程来实现,故称为“面向过程”。1.1面向过程设计概述面向过程的结构化程序设计方法就是采用面向过程的方法来设计结构化程序。结构化程序通常包含一个主程序和若干个子过程,其中每个子过程都描述了某一个小问题的解决方法再由主过程自顶向下调用各子过程,来逐步解决整个问题。结构化程序设计方法是一种数学思维或计算机思维方法,和人们认识世界时所习惯使用的方法不同。面向过程开发方式是对计算机底层结构的一层抽象,它把程序的内容分为数据和操纵数据的操作两部分。这种编程方式的核心问题是数据结构和算法的开发和优化。C语言所提供的机制就是典型的结构化编程设施。1.2面向对象设计的特点面向过程的程序设计方法通过在程序中模拟问题求解中的过程来进行问题求解,这种方法认为过程或函数可以作为建立大型复杂软件系统的抽象机制。但由于在问题求解过程中,一些过程比较复杂,为控制复杂性,引入了功能分解的方法,即将一个复杂的过程分解为复杂性较低的低级过程,这种分解一直进行到参与设计和编程的人员可以理解的步骤或过程为止。这样使得系统是过程的组件,在整个分解过程中,数据结构的安排是出于对过程组织的需要而进行的。因此,数据处于次要地位,而过程是关心的焦点。面向过程的程序方法把重点放在解决问题的过程上,将数据结构和操作这些数据结构的函数分开,在方法上存在明显的不足。二、 面向对象的程序设计人们在认识客观世界中的各种系统时所习惯使用的方法是面向对象的方法。面向对象的程序设计(OOP)方法就是用人类在现实生活中常用的思维方法来认识、理解和描述客观事物,强调最终建立的程序系统能够映射问题域,即程序系统中的对象以及对象之间的关系能够如实地反映问题域中固有的事物及其关系。因此,它为我们提出了一个全新的概念,其主要思想是将数据(成员数据)及处理这些数据的相应函数(成员函数)封装到一个类(class)中,而使用类的数据变量则称为对象(object)。2.1面向对象设计概述面向对象的程序在程序结构上表现为类之间的联系,这些联系反映了程序运行时对象之间的消息传递关系,程序正文中类之间的静态联系提供了在程序运行时对象之间的消息传递的通道。面向对象的程序的功能是通过特定的消息传递序列来实现的。使用面向对象的程序设计方法设计软件系统必须首先清楚软件系统的构造块:对象。在面向对象的程序设计中,对象就是将数据和对数据进行的合法操作结合于一体的抽象实体,以这种实体所构成的程序就是面向对象的程序。面向对象方法中,对象可以接受其他对象传来的消息,也可以向其他对象发送消息。有的语言静态类型,决定了对象可接受的消息的范围,这称为对象的类型的接口。有的语言中对象可以接受任何消息,但只对其有意义的消息进行反应。对象中可以包含其他对象,这成为“聚合”,对象可以被当作其他类型的对象,这要求对象的类型“继承”另外的类型。对象只能通过其所提供的接口来进行访问,其内部具体实现是不可访问的,这成为“封装”。面向对象方法的三个核心要素是:封装、继承、多态。2.2面向对象设计的基本概念对象对象的本意是指某一事物,即对象是可以看到、摸到、感觉到的一种实体。在面向对象的技术中,对象是指计算机系统的一个基本成分,它有一个唯一的名,有一组状态(用公共数据和私有数据表示)及表示对象行为的一组公共或私有操作,即“对象二数据+动作”,对象具有一个操作集合和一个记录操作结果的局部共享状态。类(class)类是具有相同操作(功能)与相同数据格式(特征)的对象集合。它是面向对象程序设计语言提供的可再用软件成分,类可以看作为抽象数据类型的具体实现。抽象数据类型是指数据的集合和作用其上的操作的集合,而抽象数据类型则不关心实现的具体细节,从外部看,类的行为可以用新定义的操作加以规定。类为对象集合的抽象,它规定了对象的公共状态与行为特征,即对象为类的一个实例(instance),对象与类的关系相当于程序设计语言中变量与变量所具有的类型的关系。消息消息是要求某个操作的规格说明,由三部分组成:接受消息的对象、消息选择子(消息名)和零个或多个变元。方法对象所能执行的操作称为方法,在C++语言中称为成员函数。方法是类中定义的函数,描述对象执行操作的算法。2.3面向对象设计的优点面向对象的程序设计方法与面向过程的结构化程序设计方法相比较,面向对象的方法至少有三个优点:第一,面向对象的程序设计方法通过将数据封装在类中,对信息进行了很好的隐藏,面向对象的程序容易阅读和理解,程序员只需了解必要的细节,降低了程序的复杂性,使其具有较好的可维护性;第二,程序员通过修改、添加或删除对象,可以很容易的修改、添加或删除程序的属性,使程序具有易修改的特性;第三,程序员可以将某些公用的类和对象保存起来,随时插入到应用程序中,不需做什么修改就能使用,具有很好的可重用性。因此,面向对象的设计方法是提高软件开发效率,解决软件重用的有效方法。综上,面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。面向对象的程序设计方法所得到的程序是类的集合,而面向过程的程序设计方法所得到的程序是函数的集合。三、程序的设计模式对于设计模式,ChristopherAlexander和他的同事们可能最先将模式语言(patternlanguage)应用于城市建筑领域,他的思想和其他人的贡献已经根植于面向对象软件界。简而言之,软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。一般而言,一个模式包含四个要素:模式名称、问题、解决方案和效果。一个设计模式命名、抽象和确定了一个通用设计结构的主要方面,这些设计结构能被用来构造可复用的面向对象设计。设计模式确定了所包含的类和实例,它们的角色、协作方式以及职责分配。每一个设计模式都集中于一个特定的面向对象设计问题或设计要点,描述了什么时候使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。虽然设计模式描述的是面向对象设计,但它们都基于实际的解决方案,这些方案的实现语言是Smalltalk和C++等主流面向对象编程语言,而不是过程式语言(Pascal、C、Ada)或更具动态特性的面向对象语言(CLOS、Dylan、Self)。设计模式分为三种类型,共23种,创建型模式包括单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式;结构型模式包括适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式;行为型模式包括模版方法模式、命令模式、迭代器模式、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版退股协议范本:股东股权退出法律文件汇编
- Unit 6 Have you got any homework Lesson3 Reading part5【知识精研】KET剑桥英语
- 《姚森敬总则及章节》课件
- 《放大电路基础》课件
- 《维克多·雨果》课件
- 知识产权法(商标法、著作权法、专利法)课件
- 《个人礼仪》课件2
- 2025至2031年中国子弹收集器行业投资前景及策略咨询研究报告
- 2025至2031年中国卧式搅拌传动密封装置行业投资前景及策略咨询研究报告
- 《CRRT治疗及护理》课件
- 2025年中国东方电气集团有限公司招聘笔试参考题库含答案解析
- 2024-2025学年云南省昆明市盘龙区三年级(上)期末数学试卷(含答案)
- 物业公司行政人事部职责
- (正式版)HG∕T 21633-2024 玻璃钢管和管件选用规定
- 人教版《道德与法治》二年级下册全册优秀课件
- 建筑施工图-剖面图
- 我国动车组各型车辅助供电分析与比较
- 标书密封条格式模版(共19页)
- SMT车间温湿度点检记录表
- 罩极电机检验细则
- OPC通讯DCOM配置手册
评论
0/150
提交评论