《信息系统开发方法_面向对象开发方法》由会员分享,可在线阅读,更多相关《信息系统开发方法_面向对象开发方法(54页珍藏版)》请在金锄头文库上搜索。
1、主讲 机械学院 雷琦,主讲 机械学院 雷琦,面向对象开发方法,面向对象的基本原理 面向对象方法的主要机制 面向对象方法的开发过程,面向对象开发方法,一、面向对象的基本原理,客观世界是实体及实体相互间的关系构成的 客观世界中的实体就是对象,什么是对象?,如何反映和概括对象的基本特征?,一部二十四史,一言以蔽之,厚脸皮黑心肠而已! 封建权贵未必懂政治学,但无人不通 帝王将相常胜不败的政治机密 大奸大诈用而不说的争雄秘传,? ? ?,人的本质决定于思想与行为的统一! 对象的本质是数据与操作的封装!,一、面向对象的基本原理,人以群分,物以类聚,1.区分对象及组成 区分整体对象及其组成部分 如:汽车轿车
2、、公共汽车、货车 汽车车轮、车体、发动机 2.区分对象的属性 如:车颜色、大小、耗油量 3.分类 如:世界人、动物、植物 交通工具车、船、飞机,人类认识和理解现实世界的三个构造法则:,一、面向对象的基本原理,(一)面向对象的基本思想,世界是有对象组成的,客观世界中的万物或人脑中的各种概念,都是对象现实世界中实体的抽象模型。,一、面向对象的基本原理,客观世界是由实体及实体相互间的关系构成的,因此我们把客观世界中的实体抽象为对象(Object)。 面向对象就是面向“实体”,尽可能按照人类认识世界的方法和思维方式来分析和解决问题,因此,人们将任何感兴趣或要加以研究的事物、概念都统称为对象,以对象作为
3、最基本的元素,作为分析问题、解决问题的核心。计算机实现的对象与真实世界具有一对一的关系,不必作任何转换,这样就使面向对象更易于为人们所理解、接受和掌握。,(一)面向对象的基本思想,一、面向对象的基本原理,面向对象方法思想的四个要点:,认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象组合而成。 把所有对象归纳成各种对象类(简称为类(Class),每个对象类都定义了一组数据和一组方法(操作),数据用于表示对象的属性(状态),方法是对象的功能(行为)。 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级),子类对父类
4、有继承性。 对象彼此之间仅能通过传递消息互相联系。,一、面向对象的基本原理,(二)面向对象的概念和术语,1.对象 (Object) object 1. 物体;2. 对象,目标;3. 目的,宗旨。 现代英语词典 对象是行动或思考时作为目标的人或事物。 现代汉语词典(商务印书馆,1996) 对象是一个封闭体,它是由一组数据(属性)和施加于这些数据上的一组操作(功能)构成。 在OO方法中的定义,一、面向对象的基本原理,对象 (Object)的定义,对象,属性,操作,反映事物的状态、内部结构,反映事物的行为、功能,对象的数据刻画了对象的属性,反映对象静止的一面,表明对象的状态; 对象的操作刻画了对象的
5、功能,表明对象的行为,反映了事物的运动规律; 对象的属性决定了对象可能的行为,而对象的行为又能改变对象自身的属性(状态)。,一、面向对象的基本原理,对象的本质是数据与操作的封装,这种封装性又称信息隐藏,它保证每个对象在定义时尽可能少地显露其内部的处理,从而能够很好地屏蔽局部不稳定因素,把易变因素对整个系统结构的影响降到最低。 封装在一起的数据和操作之间是相互影响、相互作用的。对象的属性值(即数据)只能通过执行对象的操作来改变。 由于封装,惟一能改变对象状态的方式是接收来自其他对象发来的消息,并通过自身封装的服务功能来实现。,对象的内部组织与封装,一、面向对象的基本原理,一个对象的内部组织包括以
6、下几个方面: 标识:即对象的名称,用来区分其他对象。 数据:用来描述对象属性的存储或数据结构,它表明了对象的一个状态。 操作:即对象的行为,又称为方法或服务。操作可分为两类:一类是对象自身承受的操作,即操作结果修改了自身原有属性状态;另一类是施加于其他对象的操作,即将产生的输出结果作为消息发送的操作。 接口:主要指对外接口,是指对象受理外部消息所指定的操作的名称集合。,对象的特征,一、面向对象的基本原理,counter的对象表示,示例1: “计数器”counter,属性:value保存数值 提供三个服务: init() 置value为0; dec() 使value减1; inc() 使valu
7、e加1。,一、面向对象的基本原理,Play(放音) 键 播放 Record(录音) 键 录下歌曲 操作 . . .,示例2:音频(录音机)的对象表示,一、面向对象的基本原理,以数据为中心。操作围绕对数据所需进行的处理来设置,而且操作的结果往往与当时所处的状态(数据值)有关。 对象是主动的。它与传统的数据有本质的不同,不是被动地等待对它进行处理,而对象为了完成某个操作,通过对象的公有接口向它发消息,请求执行某个操作,处理它的私有数据。,对象的特点,一、面向对象的基本原理,实现了数据封装。对象的数据对外是不可见的,对私有数据的访问或处理只能通过公有的操作进行,具有典型的黑盒子特征。 本质上具有并行
8、性。不同对象各自独立地处理自身的数据,彼此通过传递消息完成通信,因此,本质上具有并行工作的属性。 模块独立性好。对象是面向对象的软件的基本模块(内聚性强,耦合性弱)。,对象的特点,一、面向对象的基本原理,2.类(Class),类是一组具有相同数据结构和相同操作的对象的集合。 在OO方法中的定义,分类是人们认识客观世界的基本方法。,定义,一、面向对象的基本原理,类与实例,一个对象就是该对象所在类的一个实例(instance) ,或者说,任何一个对象都是某一对象类的实例。,类是抽象虚无的,而实例是具体的。实例(具体对象)是类的具体事物,类是多个实例的综合抽象。 实例既具有共性又有个性,对象的共性是
9、指其所能接受消息的接口和实现操作功能的方法(也称行为),对象的个性是指形成的私有存储单元。,一、面向对象的基本原理,自行车的共性:,自行车的个性:,一、面向对象的基本原理,类是对象的抽象,类的具体化就是对象,也可以说类的实例是对象。 类具有属性,它是对象状态的抽象,用数据结构来描述类的属性。 类具有可操作性。它是对象行为的抽象,用操作名和实现该操作的方法来描述。 类是有层次的 ,在面向对象的方法中,自下而上对现有类的共同性质进行抽象体现了人们的归纳思维能力,称为“泛化”;自上而下把现有类划分为更具体的子类体现了人们的演绎思维能力,称为“细化”。,类与对象,一、面向对象的基本原理,3.封装(En
10、capsulation),封装就是把对象的属性和服务结合成的一个独立的系统单位,并尽可能隐藏对象的内部细节。,封装具有两层涵义,一是把对象的全部数据和操作结合在一起,形成一个不可分割的独立单位(对象);二是尽可能隐藏对象的内部细节,对外形成一个边界,只保留有限的接口与外界联系。,一、面向对象的基本原理,示例: “售报亭”的封装 属性:各种报刊(名称、定价)、钱箱(总金额) 服务:报刊零售,款货清点,报刊进货 封装“亭子” 接口“窗口” 顾客只能从这个窗口要求提供服务,而不能自己伸手到亭内拿报刊或找零钱。款货清点是一个内部服务,不向顾客开放。,一、面向对象的基本原理,对象是一个很好的封装体,它向
11、外提供的界面包括一组数据(属性)和一组操作(服务),而把内部的实现细节隐藏起来。 封装的信息隐藏作用反映事物的相对独立性,当我们站在对象以外的角度观察一个对象时,只需注意“做什么”,不必关心“怎么做”。 封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效地避免了外部错误对它的“交叉感染”,错误被限制在局部。另一方面,当对象的内部需要修改时,由于它只通过少量的服务接口对外提供服务,因此大大减少了内部的修改对外部的影响,减少了“波动效应”。,一、面向对象的基本原理,继承者称为子类,被继承者称为父类,单一父类的情形称为单继承(例如树形结构),两个以上父类的情
12、形称为多继承。,4.继承(Inheritance),继承具有传递性,若类C继承类B,类B继承类A,则类C继承类A。 继承的优点在于可以极大程度地减少设计和程序实现中的重复性。,一、面向对象的基本原理,5.消息(Message),消息是对象之间交互、通信的手段,是外界能够引用对象操作及获取对象状态的唯一方式。 一个对象向其他对象发出带有参数的消息,接受消息的对象激活相应的方法,执行相应的操作,完成所需要的操作,也叫做对象的行为,从而改变自身的状态。,一、面向对象的基本原理,协议或称外部接口、方法,协议或称外部接口,是一个对象对外服务的说明,它告知一个对象可以为外界做什么,外界能够并且只能向该对象
13、发送协议中所提供的消息,请求该对象服务。 方法是实现每条消息具体功能的手段。 方法与协议一一对应,有一条协议就必然有一个方法实现之。外界只能通过对象的协议或外部接口向该对象发送消息。 封装使对象成为独立的系统单位,而消息则提供各对象间唯一合法的动态联系途径。,一、面向对象的基本原理,示例顾客对售报亭说:“我买一份宁波晚报”。售报亭接收到这个消息后执行一次对外提供的服务(报刊零售),这条消息包含下述信息: 对象标识接受者(售报亭) 服务标识要求的服务(报刊零售) 输入信息 宁波晚报,一份,1.00元钱 回答信息买到的宁波晚报报纸和找零0.50元钱,一、面向对象的基本原理,(三)面向对象方法的本质
14、,“面向对象”是一种认识客观世界的认知方法学,这种认识方法将客观世界看成是由许许多多不同对象构成的,每一个对象都有自己的运动规律和内部状态,不同对象间的相互作用和通讯构成了完整的客观世界,因而,从人们思维模型和认识事物的角度,面向对象很自然地与客观世界的固有特征相对应。,一、面向对象的基本原理,面向对象=对象(属性及服务的封装)+分类 +继承消息通信,二、面向对象方法的主要机制,最基本的思想:通过系统中的最稳定(即那些对变化不敏感的部分)的方面(对象)来刻画系统,通过信息屏蔽将比较容易变化的元素隐藏,把易变因素对整个系统结构的影响降到最低。,(一)抽象、封装(信息屏蔽机制),对象是事物的行为和
15、状态两种特性的抽象。 状态是行为的结果,行为是状态或内部结构的变化。,抽象机制就是把对象的动态特性与静态特性抽象为数据结构以及在数据结构上施加的一组操作,并把它们封装在一起,使对象状态变成对象属性值的集合,对象行为变成能改变对象状态的操作的集合(方法的集合、功能的集合)。,抽象、抽象机制,二、面向对象方法的主要机制,封装、信息屏蔽机制,封装又称为信息屏蔽机制或信息隐藏机制,是指软件组成的部件应当分离或隐藏。用户只能看见对象封装截面上的信息,对象内部对用户而言是隐蔽的。封装的目的在于将对象的使用者和对象的设计者分离开来,使用者不必知道行为实现的细节,只需用设计者所提供的消息来访问对象。,二、面向
16、对象方法的主要机制,封装的另外一个目的是为了将维护局部化。 面向对象的抽象封装使对象信息隐藏在局部。当对象进行修改,或对象自身产生错误的时候,由此带来的影响仅仅局限在对象内部而不会波及其他对象乃至整个系统环境,这极大方便了软件设计、构造和运行过程中的检错、修改。,易维护性,二、面向对象方法的主要机制,(二)消息传递机制,消息用来请求对象执行某种处理,或回答某些信息的要求,统一了数据流和控制流。 消息完全由接收对象解释,接收对象独立决定采用什么方式完成所需的处理。一个对象能接收不同形式、不同内容的多个消息。同一条消息也可以同时发至多个对象,并允许接受同一消息的对象按各自的方式响应。 消息传递机制很自然地与分布式并行、多机系统、网络通信等模型取得一致,强有力地支持复杂大系统的分析与运行。,二、面向对象方法的主要机制,(三)继承性、可重用机制,继承性又称可重用机制(也称代码共享机