- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 面向对象软件详细设计 8.1 面向对象简介 “面向对象(Object-Oriented,OO)”是指把一组相互之间没有联系的对象有效地集成在一起,这些对象都是将数据结构和行为紧密地结合在一起的。这和传统的程序设计不同,传统的思想是将数据结构和行为松散地连接在一起。当然,这里存在着哪些特性是真正的面向对象方法的争论。但不管怎么说,通常面向对象方法至少包含四个方面:标识、分类、多态和继承。 通过将抽象、封装和模块结合在一起的方法,可使面向对象的思想贯穿于整个软件开发生命周期中。为了能使用计算机处理来自现实世界的事物,人们必须提取出事物的本质特征。在研究现实世界事物的过程中,忽略问题中与当前目标无关的部分,以便更充分地集中与当前目标有关的部分,这种方法就是抽象。现实世界中的事物是复杂的,所以不能试图一步到位地理解完整的事物,而仅选择它的一部分作为研究重点,这是一种行之有效的方法。抽象是体现这一方法的有效工具,它是去除一个事物中对当前目标不重要的细节,仅保留它的可描述的特征,从而形成的一个抽象数据,同时它也是面向对象程序设计的起点和基础。 封装的意义在于将数据抽象类型及其操作紧密地结合在一起,成为一个整体,从而使每个模块的界面尽量少地暴露它的内部工作。封装将外部规格说明从内部实现中分离出来,外部规格说明必须在开发早期提出,而内部实现则可以推迟。模块化促进了逻辑一致性、可理解性和对称性。8.1.1 面向对象的概念 由于面向对象方法已经发展到计算机科学技术的许多领域,所以若想从一般意义上给出“面向对象方法”严格而清晰的定义,使之对这些领域都能适用,是一件很困难的事。 20世纪80年代初期以前的定义是:面向对象是一种新兴的程序设计方法,或者是一种新的程序设计范型(Paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。 自20世纪80年代以来,面向对象方法已深入到计算机软件领域的几乎所有分支,远远超出了程序设计语言和编程技术的范畴。但是,即使在“计算机软件”范围内定义什么是面向对象也仍然是不完整的,因为面向对象方法还发展到计算机软件以外的其他领域,如计算机体系结构和人工智能等。 由于本书是讨论软件开发方面的问题的,而面向对象方法已在其中产生了巨大影响并发展为较为完整的理论与技术体系,所以就在这个范围内讨论什么是面向对象。面向对象不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,同时以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。 概括地说,面向对象方法的基本思想是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能地运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称做该软件的问题域。面向对象方法强调直接以问题域(客观世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接地映射问题域,保持问题域中的事物及其相互关系的本来面貌。 另外,软件开发方法不应该是超脱人类日常的思维方式,并与人类在长期进化过程中形成的各种行之有效的思想方法迥然不同的思想理论体系。如果说,在某些历史阶段出现的软件开发方法没有从人类的思想宝库中汲取较多的营养,只是建立在自身独有的概念、符号、规则、策略的基础之上,那只能说明软件科学本身尚处于比较幼稚的时期。 结构化方法采用了许多符合人类思维习惯的原则与策略。面向对象方法更加强调运用人类在日常逻辑思维中经常采用的思想方法与原则,例如抽象、分类、继承、聚合、封装等。这使得软件开发者能更有效地思考问题,并以其他人也能明白的方式把自己的观点表达出来。 具体地讲,面向对象方法有以下一些主要特点: (1) 从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。 (2) 事物的静态特征(即可能用一些数据来表达的特征)用对象的属性表示,事物的动态特征(即事物的行为)用对象的服务表示。 (3) 对象的属性与服务结合为一体,成为一个独立的实体,对外屏蔽其内部细节(称做封装)。 (4) 对事物进行分类,把具有相同属性和服务的对象归一为类。类是这些对象的抽象描述,每个对象是它的类的一个实例。 (5) 通过在不同程度上运用抽象的原则(较多或较少地忽略事物之间的差异),可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。 (6) 复杂的对象可以用简单的对象作为其构成部分(称做聚合)。 (7) 对象
文档评论(0)