对象概述.docx
- 文档编号:3186691
- 上传时间:2022-11-19
- 格式:DOCX
- 页数:26
- 大小:780.70KB
对象概述.docx
《对象概述.docx》由会员分享,可在线阅读,更多相关《对象概述.docx(26页珍藏版)》请在冰豆网上搜索。
对象概述
对象概述
⒈现实世界中的对象
客观存在的、可被感知的、有独立性状的实体都是对象,如汽车、空气、数据库、操作系统等。
⒉面向对象(ObjectOriented)概念的起源
·60年代中期由两名挪威人Dahl和Nygaard首创;
·1967年推出simulation语言(至今仍有使用);
·基本思路是将物理模型转变为软件模型;
⒊面向对象理论体系的发展
①70~80年代中期出现了沉寂;
②80年代中后期到90年代初涌现出15种不同的理论方法;
·1989~1991,SallyShlaer和SteveMellor出了两本关于OO分析与设计的书;
·1987年,DavidHarel引入了状态图,用以描述系统或子系统有限状态的变化过程;
·1991~1995,PeterCoad和EdYourdon经过研究,开发出了较为简捷的面向原型的分析方法;
·1990年Smalltalk协会开发出了一种称为CRC(ClassResponsibilityCollaboration)卡的工具用于对象模型的分析过程;
·1991年JimRumbaugh小组对象的OMT(ObjectModelingTechnique)模型,后经GradyBooch作了进一步的完善(主要是符号体系和术语)成为目前公认的最实用化的OO模型;
·几乎在同一年,IvarJacobson(当时在为Ericsson服务)为OMT引入了UseCase的概念,成为了后来的国际标准UML(UnifiedModelingLanguage)的基础;
·1997年由GradyBooch,JamesRumbaugh和IvarJacobson三位著名的面向对象技术方法学者推出了今天的国际标准UML;
·下图是面向对象模型理论发展的历程图:
⒋对象的模型化
①认识属性(Attribute)
对象内凡是可以描述自身状态、性质的数据名称的总和称为属性。
例如一个阀门应当有流量、材质、大小、压力等数据名称。
又如骰子应有点数、形状、颜色等反映其性状的数据名称。
从时序过程上来看,某各时刻的属性数值的组合就形成了对象的某个特定状态(Stat)。
在对象的属性当中必须存在至少一个用来标识自身用以区别相同结构对象的元素,被称为特征项(Identity)。
例:
设(如下图)一个学校内有两位同名的JClark教授,生日相同且都教生物学课程,设想他们各自的特征项应当有哪些可能?
②认识方法(Method)
对象在外力作用下而产生的可以改变其部分或全部属性值的动作行为(Behavior)的总和称为方法。
对象的方法可以是单独的、分立的动作,也可以是一个过程。
如阀门的开和关,骰子的投掷等。
从这个意义上讲,对象一定要有至少一个行为才能改变其属性值。
对象的行为有主动与被动只分,直接改变自身属性值为被动行为,通过访问其他对象的方法而改变自身属性值或引起被访问对象的属性值发生改变为主动行为(被访问的对象的属性值可能也会跟随的发生改变)。
③封装(Encapsulation)
当对象含有完整的属性和与之相对应的方法时,则称为封装。
这样的对象可以用一种被称为“田田圈”的图形表示:
由此可得出两个推论:
·从对象的外面不能直接访问对象的属性,而要通过对象的方法才能实现;
·对象的方法可以接收来自对象以外的信息;
换言之,客户端访问对象是通过对象接口来进行的,对象的内部结构对访问方是不可见的。
④消息(Message)
促使对象动作的来自外界的触发信息的总和被称为消息。
消息包含四个基本要素:
·接收消息的对象标识;
·接收消息的对象的方法标识;
·可能含有接收消息的对象的方法所需的参数;
·可能含有由接收消息的对象的方法提供的返回信息;
在对象系统中消息必然将两个对象联系在一起。
此时,称发出消息的一方为客户;接收消息的一方为服务器。
因而,消息便构成了客户/服务器关系结构。
例:
试用对象与消息的概念解释C语句“doubled=0;”的含义。
解:
d是一个变量,具有存储值的属性和等于的方法,当外界发来消息且携带参数0时可用下图表述:
试用同理解释C语句“d+=2.5;”的含义
⑤对象的抽象(Abstract)与类(Class)
提取多个对象内的相同结构特征的结果的总和被称为对象的抽象。
在一个由对象构成的系统中会大量存在基本结构相同仅属性的具体数值不同的一类对象。
因此最好用能够描述这种对象基本结构一种抽象形式来代替,以使系统的构造清晰易懂。
于是把这种对象的抽象形式称之为类。
则类便具有以下的两个突出的要素:
·类是对象的属性、方法、关系(Relationships)和语义(Semantics)的抽象结构描述体,工程上又常被叫做模板(Template);
·当提供具体的属性数值后便可用类来制造对象;
在现实世界中的对象内的属性和方法可以按数学模型设立访问权限,这些访问权限要在具体的语言中用相应的语法予以支持。
⑥模块化(Modularity)
将一个复杂的大系统分解成若干个相对小和简单的组成部分称为模块化。
模块化有助与于人们更容易、更快捷、更准确的理解一个复杂系统(如下图示例)。
⑦分层架构(Hierarchy)
对象的抽象可以分成若干层进行组织。
相同结构越少的分层则处于较高的分层位置,抽象程度就也越高。
相反,处于较低分层位置的对象在继承上层架构的基础上,还会具有本层特有的一些结构,因而抽象程度也就降低(如下图的示例)。
⑧UML中对象符号(Notation)的使用
为了能够明确地将具体的对象与其抽象形式—类相区别,UML确定用下述两种符号分别代表对象和类:
对象名:
抽象对象名
例:
表示对象的符号
表示类的符号由表示属性和方法的两类结构所组成。
但在类的符号中将方法改称行为(Operations)以区别与其抽象的描述。
例:
表示类的符号
行为作为消息的承载者可以含有以下成分:
·响应外来请求并提供服务;
·可以通过特定格式的参数来满足不同的外来请求;
·可以具有特定格式的返回数据;
·可以向其他对象发出请求;
在一个复杂系统中可以将关系密切的且总的服务目的一致的多个类合并在一个类集(ClassPackage,也可以译成类包)中组成子系统,以便于描述更大系统间的相互关系。
对应的图形符号如下:
例:
⑨多态(Polymorphism)与泛化(Generalization)
对象面对同一个来自外界的服务请求可以提供多个响应的接口结构称为多态。
例:
银行的理财系统的多个接口
当一个对象继承另一个对象且共用所继承对象的接口的关系称为泛化。
泛化是一种特定的继承/派生关系。
此种关系中就存在一种特定的“isakindof”关系。
⑩对象模型化的意义和基本内容
对象模型是对实际对象的简化。
对于复杂系统只有通过建构模型才能够使设计人员对研发的系统有直观的认识;也才有可能定义对应的数据结构和行为、构造系统的模板。
建构对象模型(以下简称建模)要认识以下四个要点:
·建模将对问题的求解产生深刻的影响;
·系统分层建模是不同的;
·最好的模型是能够解决实际问题;
·一个完备的系统的模型由多个不同功能的模型所构成:
传统的对象模型化(OMT技术)将对象模型分为三种:
对象模型(ObjectModel)、动态模型(DynamicModel)和功能模型(FunctionModel)。
(一)对象模型所要解决的问题
·系统中对象标识与类的提取;
·系统中对象间的关系;
·对象类中的属性结构和方法的描述;
(二)动态模型所要解决的问题
·描述系统的控制机制;
·描述系统的工作形态的变化形式;
(三)功能模型所要解决的问题
·描述系统的数据流入/流出形态;
·描述系统内各对象的数据流入/流出的相应处理过程;
Rose提出的可视化建模解决方案中共定义了4+1个模型:
用例模型、逻辑模型、处理模型、运行模型和部署模型。
其中的用例模型是核心。
⒌对象间的关系
对象间存在有包容(Aggregation)、继承(InheritanceorDerived既派生)和关联(Association)三类关系。
①包容关系(Aggregation)
在一个类中若存在至少有一个属性成员不是简单的数据类型而是另外一个类的关系就被称为包容关系。
包容关系可用下图说明:
根据可访问的权限的不同,包容关系又可分为透明包容关系和不透明包容关系两种。
包容关系可用下述的符号体系描述:
其中菱形符号代表包容关系,—●表示包容的数量关系。
各种数量关系参见下表:
上表中的表述形式还将在关联关系中被应用。
·嵌入包容(Embedaggregation)
若被包容类对象系在包容类对象出现之前已独立存在于系统内,仅当包容类对象生成后才被插入,则称此种包容关系为嵌入包容关系。
嵌入包容关系中的包容类对象和被包容类对象的相互依存关系较为松散,实际存在一个双方同时都独立活化在系统内部的暂时状态(当然此时包容类对象的功能不能展开)。
在OMT用来描述包容关系的结构图中用一个空心的菱形表示此种包容关系。
如:
·复合包容(Compositeaggregation—Composition)
若被包容类对象系在包容类对象生成的同时被连带生成的,则称此种包容关系为复合包容关系。
复合包容关系中的包容类对象和被包容类对象的相互依存关系非常紧密,若被包容类对象一旦在系统内消失则包容类对象便随之消亡(即共生共灭)。
在对象模型分析中用来描述此种包容关系的结构图中用一个实心的菱形表示此种包容关系。
如:
但在UML体系内已不特别强调此种包容关系,而常用嵌入式包容的符号表示复合包容关系。
②继承关系(Inheritance)
一个类拥有另一个类的部分或全部的属性及其相应的方法的关系被称为继承关系。
继承关系可用下图描述:
·基类通常写成Supclass,派生类通常写成Subclass;
·若一个派生类只是继承了基类的部分成份称为限制性(Restriction)继承;
·若一个派生类不仅继承了基类的全部成份而且还增加了基类中所没有的成份则称为拓展性(Extension)继承;
·当一个派生类拥有两个以上的基类时,又被称为多重派生(Multipleinheritance);
·在定性讨论中也可以用直线连接基类和派生类;
·重构又称为覆盖(Overriding)是指在派生类中对继承来的成份进行的改造性重构。
重构是OO技术中为实现重用的一个重要分支;
例:
通常派生类对象中也有基类对象的成分,但这种情形与包容关系有着本质的区别。
·派生类对象中的基类对象不一定是完整的;
·存在于派生类对象中的基类对象是以分割形式出现的不止是在属性内;
·派生类对象具有基类对象的许多相似成分(akindof);
·特定的继承关系可以衍生出泛化(Generalization);
③关联关系(Association)
存在有消息关系的对象关系称为关联关系。
关联关系是将现实世界中的对象模型化的普遍存在的关系。
在一般情况下关联关系不能被当作类中的属性。
目前还很少有面向对象化的程序设计语言直接支持关联关系的描述(UML除外)。
关联关系存在有方向和数量等一系列的说明参量。
在对象模型中描绘关联关系使用直线将两个模型相连即可。
(一)连接(Link)
关联关系在具体叫法上存在小的差别。
类间的关联关系体现在对象间时被叫做连接(如下图的示意)。
例:
(二)多元关联关系的描述
关联关系中最常见的是前述的二元(Binary)关联。
若有三个以上的类对象存在的关联关系被称为多元(n-ary)关联关系,此时用一个菱形符号将对象连接在一起。
例:
(三)关联关系中的数量表示(Multiplicity)
在关联关系中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 概述
![提示](https://static.bdocx.com/images/bang_tan.gif)