版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章:对象模型,面向对象分析与设计,一、对象概述 二、对象的基本元素 三、对象的关系 四、对象的抽象机制 五、抽象类 六、静态对象模型设计 七、实战锦囊,基于UML描述的对象模型,一、对象概述,对象模型是基础,一、对象概述,内容 对象基本元素,对象关系,对象和类的抽象机制,结合UML元素来描述。,实战 结合UML 结合程序语言 结合静态视图 结合具体的项目设计,基于UML的对象基本元素的描述,一、对象概述 二、对象的基本元素 三、对象的关系 四、对象的抽象机制 五、抽象类 六、静态对象模型设计 七、实战锦囊,二、对象的基本元素,1 抽象 2 封装 3 模块性 4 层次性 5 类型 6 并发性
2、 7 持久性,二、对象的基本元素,1 抽象(abstraction),Abstraction - The definition of the interface of a class (what it knows and does). 抽取出不同与别的对象的突出特点,二、对象的基本元素,2 封装(encapsulation),Encapsulation - The hiding of the implementation of what a class/object knows or does, without telling anyone how its done. BOOCH定义:封装是对
3、拥有结构和行为的一个抽象的元素进行划分的过程。与抽象概念互补。 封装完成抽象(对象)的契约接口和实施的分离。,二、对象的基本元素,3 模块性(modularity),将对象的内部分为多个部件(对象),可以降低复杂性。 OO模块划分与传统模块划分的区别:后者根据功能,考虑耦合和聚合因素;前者考虑本身的接口设计。,二、对象的基本元素,4 层次性(hierarchy),Booch的定义: 层次性是对抽象的排序和定位 方式:通过单继承,多继承,聚合来组织。,二、对象的基本元素,4 层次性(hierarchy),单继承 多继承(MI,即multiple inheritance)MI指的是从多个(多于一个
4、)直接基类(direct class)继承的能力。 聚合(Aggregation - Represents “is-part-of” relationships.) 一个对象拥有另一个对象或对另一个对象负责(即一个对象包含另一个对象或是另一个对象的一部分),并且聚合对象和其所有者具有相同的生命周期。,二、对象的基本元素,5 类型(typing),抽象的数据类型 严格的格式转换,在JAVA中注意。,二、对象的基本元素,6 并发性(concurrency),Concurrency - The issues involved with allowing multiple people simulta
5、neous access to your persistence mechanism. 体现过程抽象和同步的思路。 不同的语言提供不同的解决方法。,二、对象的基本元素,7 持久性(Persistence) The issue of how to store objects to permanent storage. Objects need to be persistent if they are to be available to you and/or to others the next time your application is run.,对象在一定的空间和时间内存在 内容:临时
6、结果,局部变量,全局、堆栈,数据(程序执行中的数据,程序间,版本间,执行外的数据),基于UML的对象关系的描述,一、对象概述 二、对象的基本元素 三、对象的关系 四、对象的抽象机制 五、抽象类 六、静态对象模型设计 七、实战锦囊,三、对象关系,1 对象和类,2 对象间的关系,三、对象关系,1 对象和类,对象的状态 (对象中属性值的不同表示处于不同的状态) 对象的行为 (通过描述每个类的功能定义对象的行为) 对象的标识 对象的生命周期,三、对象关系,2 对象间关系,类 关联(彼此间的连接) 通用化(继承) 聚合(一个对象拥有另一个对象 ) 使用(依赖,一个类使用另一个类),四种关系的表示方法,三
7、、对象关系,2 对象间关系,类: 在UML描述为:具有相同结构、行为和关系的一组对象的描述符号。它是面向对象系统组织结构的核心。,三、对象关系,2 对象间关系,类-关联: 关联是一种较弱的关系,体现了实体间的联系。关系较松散。UML中用直线表示 一对一关系,三、对象关系,2 对象间关系,类-关联: 可选对可选;强制对可选,三、对象关系,2 对象间关系,类-关联: 多对多关系,三、对象关系,2 对象间关系,类-关联: 二元关联类,Accesses, OID, customOID, accountOID,Account, accountOID,balance,accountNumber,三、对象关
8、系,2 对象间关系,类通用化,三、对象关系,2 对象间关系,类聚合 聚合是反应部分和整体间的关系。它是关联的一种特殊形式,指定了整体(Whole、Aggregate)与部分(Part、Component)之间的关系。(空心菱形表示),Club,Student,0.1,1.*,三、对象关系,2 对象间关系,类组合 组合指具有强主从关系和一致性的一种聚集关系。在合成对象创建之后,可能创建多个成员。成员一旦创建,就与合成对象具有相同的生命周期。区别即构成整体类的部分类完全隶属于整体类。(空心菱形表示),DailyCharge,HotelBill,1,1.*,1,1.*,类聚合、组合 聚合、组合可以是
9、递归的。我们看看目录管理器的类结构设计。,三、对象关系,2 对象间关系,三、对象关系,2 对象间关系,应用,三、对象关系,2 对象间关系,连接 聚合 类 类与对象间的关系 在系统分析和设计中确定二值之间的关系,基于UML的对象关系的描述,一、对象概述 二、对象的基本元素 三、对象的关系 四、对象的抽象机制 五、抽象类 六、静态对象模型设计 七、实战锦囊,四、对象的抽象机制,1 确定对象和类,2 引入并定义新的机制,3 类图,4 用例图(从功能角度,逻辑),5 组件图(代码组成) 6 拓展图 (物理结构),四、对象的抽象机制,1 确定类和对象,自底向上的归纳 具体到抽象 类抽象(分类抽象、概念抽
10、象、原型抽象),四、对象的抽象机制,2 引入并定义新的机制,弱耦合(同时兼顾类间复杂性和超类相同行为) 高内聚(功能内聚) 充分性(一个类包含抽象所需的全部操作,是类的最小集) 完全性(类的的接口中包含了全部意义上的抽象行为,最大集),四、对象的抽象机制,3 类图,类可用不同的精确度和抽象级别来表示 设计初期,类图是问题的逻辑模型 设计后期,需要增添许多设计理论以及有关系统实现的细节。,四、对象的抽象机制,3 类图描述(教学管理系统),四、对象的抽象机制,3 类图细化1(教学管理系统),3 类图细化2继承(教学管理系统),四、对象的抽象机制,角色是某人或某系统,在开发中必须和系统交互。,四、对
11、象的抽象机制,4 用例图角色(教学管理系统),用例系统的行为模式 每个用例是角色执行的一个序列。 角色使用用例来捕获需求 Registrar 管理课程 Professor 申请课程 Student 选修计划 Billing System 从注册方获取财务信息,四、对象的抽象机制,四、对象的抽象机制,4 用例图(教学管理系统),四、对象的抽象机制,4 用例图用例关系(教学管理系统),四、对象的抽象机制,5 组件图代码结构(教学管理系统),Component Library,Client Application,四、对象的抽象机制,四、对象的抽象机制,6 拓展图物理结构(教学管理系统),基于UML
12、的对象关系的描述,一、对象概述 二、对象的基本元素 三、对象的关系 四、对象的抽象机制 五、抽象类 六、静态对象模型设计 七、实战锦囊,五、抽象类,1 抽象类描述,2 抽象类表达,3 抽象类应用,五、抽象类,1 抽象类描述,特殊的对象类 部分定义数据结构和行为,不能实例化 至少有一个子类 最适合用来安排类的层次结构(hierarchy) 抽象类一般作为父类,用来描述其他类(子类)的公共属性和行为。一般用abstract表示,或者用斜体的类名。,五、抽象类,2 抽象类的UML表达,AbstractClass DoOperation()GetService (),ConcreteClass Get
13、Service (),五、抽象类,3 抽象类应用,解决多重继承 接口模式 包模式 框架中应用 设计模式中应用,五、抽象类,3 抽象类应用解决多重继承,抽象类的目的供具体类来继承它,但不用来创建对象。 具体类的目的创建对象。,接口通常被描述为抽象操作,也就是只用标识(返回值,操作名称,参数表)说明它的行为,而真正的实现放在使用它的元素中。接口在类图中表示为一个带接口名称的小圆圈。,3 抽象类应用接口模式, ref.DoTask() ,Client DoOperation(),AbstractObject DoTask (),ConcreteObjectA DoTask (),ConcreteOb
14、jectB DoTask (),ref,五、抽象类,3 抽象类应用接口模式,序列化对象成数据流格式, 通过IPC通道传输数据流 在服务端重建对象.,IPC,Client Object,Server Object,Data Structure,五、抽象类,3 抽象类应用接口模式,mytarget = create Targetsource = create Serializersource.SetData (stream)mytarget.DeSerialize (source),Client,Target Ancestor state1 Serialize (serializer)DeSeri
15、alize (serializer),Target state2 Serialize (serializer)DeSerialize (serializer),Serializer GetState (state)SetState (state)GetData()SetData (stream),super:Serialize (serializer)serializer.SetSet (state2),Data Stream state1, state2,InvokerMakeTarget(),五、抽象类,3 抽象类应用接口模式,五、抽象类,3 抽象类应用包模式 包是一种组合机制,把各种各样
16、的模型元素通过内在的语义连接成为一个整体。 构成包的模型元素称为包的内容。 包有时也表示为子系统。,Framework 类库,Client 应用程序,五、抽象类,3 抽象类应用框架模式,框架(Framework)就是整个或部分系统的可重用设计,表现为一组抽象组件及组件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。,五、抽象类,3 抽象类应用框架模式,Client 应用程序,类库,五、抽象类,3 抽象类应用框架模式,SpecificCommand state SetState(state)Do()Undo()Redo(),Client Do(cmd)Undo()Redo(
17、),CmdTarget state Command()Action(),UndoStack Do(cmd)Undo()Redo()CanUndo()CanRedo(),Command Do()Undo()Redo(),框架类库,Client 应用,LIFO,五、抽象类,3 抽象类应用框架模式,五、抽象类,Controller,Model,(Document),View,3 抽象类应用MVC框架模式,Model-View-Controller (MVC)Model-View-Controller直接翻成中文就是“模型-视图-控制”,在本文中我们就简称为MVC。MVC与其被称作是设计模式还不如说是
18、一种体系结构,因为事实上他没有特定的pattern可以表达,只能在较高的体系结构上来描述软件设计的特点。在 GUI Framework中,MVC被广泛的应用在不同的层面上。从控件的设计到应用程序的结构,MVC可以分离一个实体的表现层和结构层,用英语说就是Decouple data presentation and data model. 拿一个文字处理系统作例子 Model 层 用来描述一篇文字的内容,包括文字,图形,段落分割的位置等等。 View层 - 就是文档在桌面的视图,可以是印刷排版模式,网页模式,框架模式(outline) Controller层 就是同步连接model和view的东
19、西,它可以根据用户在View上的动作,指令model作相应的修改。据一个简单的例子,Controller可以处理用户在视图上的鼠标信息来确定哪部分文字被选中,并通知model被选中的文字在那一段的第几行。在这个例子中,controller把屏幕上鼠标的物理位置转换成文档中的字符位置。,五、抽象类,3 抽象类应用MVC框架模式类设计图,Application Object,Document Template,Document,Toolbar,View,Status Bar,Frame Window,Source: Microsoft Visual C/C+ Class Library Refer
20、ence,Document-View,五、抽象类,3 抽象类应用DV框架模式Document-View(DV)模式MVC的一个变体将MVC中的view和controller结合成一个组件。,CObject,CCommandTarget,CWinApp,CDocTemplate,CWnd,CDocument,CFrameWnd,CView,CDialog,CYourApp,CYourFrame,CYourView,CYourDlg,CYourDoc,MFC框架层,应用层,五、抽象类,3 抽象类应用MFC框架模式,PowerBuilder,Project1,Project2,ProjectN,通用类,Project,Ancestors,Types,Project框架,. . .,. . .,App1,App2,AppN,Applications,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省黄冈地区2026年初三普通高中调研测试英语试题含解析
- 2026年浙江省绍兴市迪荡新区重点中学初三下语文试题第四次月考试卷解答含解析
- 电商行业社交电商运营策略与实施细节方案
- 岗位能力培养与人才发展责任承诺书(7篇)
- 零售行业商品库存盘点管理模板
- 项目关键成员突然离职过渡供项目负责人预案
- 建筑工程监理工程变更管理流程规范化操作指南
- 采购与供应商管理工具平台
- 土木工程与建筑工程作业指导书
- 爱在阳光下感恩母亲演讲稿13篇
- 【国赛】教学能力大赛 教案设计模板
- 2020湖南专升本大学语文真题及答案解析
- 人生7张保单完整版
- 水库管理房分部工程验收鉴定书
- 苏少版五年级美术下册全册教案
- GB/T 11376-2020金属及其他无机覆盖层金属的磷化膜
- 2023年常州市武进区(中小学、幼儿园)教师招聘笔试题库及答案解析
- 部编版语文七年级下册《木兰诗》优秀课件
- 净雅服务流程课件
- 人教版 三年级下学期数学5.2长方形、正方形面积的计算课件(共19张PPT)
- 报告厅舞台灯光系统设计方案
评论
0/150
提交评论