《第2章 面向对象设计优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第2章 面向对象设计优秀PPT.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 面向对象设计现在学习的是第1页,共19页2.1 2.1 设计模式设计模式 设计模式分为:设计模式分为:系统设计:实现业务解决方案的高层策略。系统设计:实现业务解决方案的高层策略。详细设计:应用系统实现的底层策略。详细设计:应用系统实现的底层策略。现在学习的是第2页,共19页1.1.系统设计的内容系统设计的内容v将系统组织为子系统将系统组织为子系统v在分析模型中标识当前继承在分析模型中标识当前继承v向子系统分配处理器和任务向子系统分配处理器和任务v选择数据存储的机制和方法选择数据存储的机制和方法v为访问全局资源决定控制策略为访问全局资源决定控制策略v选择实现软件控制的机制选择实现软件控制
2、的机制v设计启动,关闭和故障处理策略设计启动,关闭和故障处理策略现在学习的是第3页,共19页2.2.详细设计的内容详细设计的内容v从体系结构和实现域中加入对象从体系结构和实现域中加入对象/类类v为复杂服务设计有效的算法为复杂服务设计有效的算法v优化应用优化应用/系统的设计系统的设计v最大限度使用继承最大限度使用继承v重新设计关联,以提高效率重新设计关联,以提高效率v确定类的最佳表示确定类的最佳表示v将类与关联封装到可复用模块中将类与关联封装到可复用模块中现在学习的是第4页,共19页2.2 2.2 系统设计系统设计1.1.子系统设计子系统设计v系统的每一个组成部分称为一个系统的每一个组成部分称为
3、一个子系统子系统。v子系统所处理的相对独立的主题称为子系统所处理的相对独立的主题称为问题域问题域。v子系统是一个类,关联,操作,事件和约束的子系统是一个类,关联,操作,事件和约束的封装包封装包。v子系统与其他子系统的关系通常由它所提供的服务来定义:子系统与其他子系统的关系通常由它所提供的服务来定义:对等关系:双方相互访问对方的服务。(缺点:表面公平,但由于存在通信环路,对等关系:双方相互访问对方的服务。(缺点:表面公平,但由于存在通信环路,可能导致错误。)可能导致错误。)Client/SeverClient/Sever关系:客户机请求服务器,服务器执行服务并返回值。(特点:客户机关系:客户机请
4、求服务器,服务器执行服务并返回值。(特点:客户机需要知道服务器接口,而服务器不需要知道客户机的接口。所有交互通过服务器的接需要知道服务器接口,而服务器不需要知道客户机的接口。所有交互通过服务器的接口来完成。)口来完成。)v划分系统的方式划分系统的方式横向划分:有序的子系统集合,其中每一层根据其下层构建,并成为其上层的基础。横向划分:有序的子系统集合,其中每一层根据其下层构建,并成为其上层的基础。(例如基于窗口的应用程序系统)(例如基于窗口的应用程序系统)纵向划分:将系统划分为几个相对独立的和弱耦合的子系统,每一子系统提供一种类纵向划分:将系统划分为几个相对独立的和弱耦合的子系统,每一子系统提供
5、一种类型的服务。(例如型的服务。(例如OSOS中的进程管理,存储管理,设备管理,文件管理和中的进程管理,存储管理,设备管理,文件管理和I/OI/O管理子系管理子系统)统)现在学习的是第5页,共19页2.2.体系结构框架体系结构框架1.1.系统体系结构的类型系统体系结构的类型v批处理型:对整个输入集进行数据转换。批处理型:对整个输入集进行数据转换。v连续型:随着输入的实时变化,实时进行数据转连续型:随着输入的实时变化,实时进行数据转换。换。v交互型:由外部的交互控制应用。交互型:由外部的交互控制应用。v事务型:以内关于以存储和更新数据为中心,支事务型:以内关于以存储和更新数据为中心,支持并发访问
6、。持并发访问。v基于规则型:由一定的强制性规则支配应用。基于规则型:由一定的强制性规则支配应用。v模拟型:应用模拟显示世界对象。模拟型:应用模拟显示世界对象。v实时型:以严格的定时约束控制应用实时型:以严格的定时约束控制应用其中前其中前4 4种体系结构框架是目前常用的结构种体系结构框架是目前常用的结构现在学习的是第6页,共19页 四种体系结构框架的设计步骤四种体系结构框架的设计步骤-1-1批处理体系结构框架批处理体系结构框架数据转换分解数据转换分解为分解完成的数据流定义临时对象,为分解完成的数据流定义临时对象,以确定有关转换的数据以确定有关转换的数据对象(对象(I/OI/O)扩展转换扩展转换优
7、化构建框架优化构建框架设计新对象来构建原模型松耦合的类设计新对象来构建原模型松耦合的类连续的体系结构框架连续的体系结构框架v识别所有需要连续更新的对象识别所有需要连续更新的对象v为连续转换设计序列图为连续转换设计序列图v设计设计I/OI/O临时对象,及其连续变化的值临时对象,及其连续变化的值v对对象对对象/类进行细化类进行细化/特化定义特化定义v优化构建框架优化构建框架v设计新对象来构建原模型松耦合的类设计新对象来构建原模型松耦合的类现在学习的是第7页,共19页 四种体系结构框架的设计步骤四种体系结构框架的设计步骤-2-2交互体系结构框架交互体系结构框架区别接口对象与应用语义对象区别接口对象与
8、应用语义对象预定义(类库)对象来处理与外部的交互,如窗口,按钮预定义(类库)对象来处理与外部的交互,如窗口,按钮用事件驱动(回调用事件驱动(回调callbackcallback)的方法进行处理)的方法进行处理分离物理事件和逻辑事件,并为其指定正确的对象分离物理事件和逻辑事件,并为其指定正确的对象事物体系结构框架事物体系结构框架v将对象模型映射为数据库将对象模型映射为数据库v确定非共享的资源确定非共享的资源v用序列图确定事物单元(一个事物中包括被访问对象)用序列图确定事物单元(一个事物中包括被访问对象)v为事物设计并发控制为事物设计并发控制现在学习的是第8页,共19页软件控制类型软件控制类型外部
9、控制:系统中对象之间的外部可见的事外部控制:系统中对象之间的外部可见的事件流。件流。内部控制:方法内的控制流。内部控制:方法内的控制流。注:所有内部控制策略高度依赖于系统中的可用资注:所有内部控制策略高度依赖于系统中的可用资源(语言、源(语言、OSOS等)和交互模式。等)和交互模式。2.2.系统体系结构框架的软件控制系统体系结构框架的软件控制现在学习的是第9页,共19页控制外部流的方法控制外部流的方法v过程驱动的序列过程驱动的序列:控制在应用代码中。应用:控制在应用代码中。应用代码发出外部输入请求并等待代码发出外部输入请求并等待输入到达后,输入到达后,发出过程恢复控制。发出过程恢复控制。(有利
10、于规律化控制)(有利于规律化控制)v事件驱动的序列事件驱动的序列:控制居于调度程序或监视:控制居于调度程序或监视程序中。应用过程依附于事件程序中。应用过程依附于事件事件发生后,事件发生后,由调度程序回调。应用过程发请求,但不在由调度程序回调。应用过程发请求,但不在线等待处理返回。线等待处理返回。(OS(OS对消息队列的控制就对消息队列的控制就是基于事件驱动是基于事件驱动)v并发控制并发控制:并发控制居于几个独立对象中,:并发控制居于几个独立对象中,独立对象在独立的任务中。一个任务等待输独立对象在独立的任务中。一个任务等待输入,其他任务继续执行。入,其他任务继续执行。OSOS利用并发控制实利用并
11、发控制实现对多任务事件的调度管理。现对多任务事件的调度管理。(JavaJava是一种是一种直接支持多任务和并发控制的直接支持多任务和并发控制的OOLOOL)现在学习的是第10页,共19页UMLUML用包图、构件图和实现图(部署图)来描述系统用包图、构件图和实现图(部署图)来描述系统体系结构和系统设计。体系结构和系统设计。包图:包图:表示对软件系统划分的子系统。表示对软件系统划分的子系统。3.3.系统设计文档系统设计文档包名包名包名包名类类A A类类B B类类C C文件夹风格的图标表示包。文件夹风格的图标表示包。隐藏包内的类时,包名在文件夹的中心。隐藏包内的类时,包名在文件夹的中心。显示包内的类
12、时,包名在文件夹的标签部位。显示包内的类时,包名在文件夹的标签部位。“”表示包之间依赖的方向。表示包之间依赖的方向。现在学习的是第11页,共19页构件图:构件图:UMLUML标识标识5 5种构件原型(应用、库、表、文种构件原型(应用、库、表、文件和文档),构件图表示构件之间的关系。件和文档),构件图表示构件之间的关系。构件表示分布的物理单元,如源代码,对象代码或可执行代码。构件表示分布的物理单元,如源代码,对象代码或可执行代码。“”表示构件之间依赖的方向。表示构件之间依赖的方向。构件构件 构件构件现在学习的是第12页,共19页实现图(实现图(realization diagramrealiza
13、tion diagram):也称:也称部署图(部署图(deplogment deplogment diagramdiagram),表示构件与其依附的硬件之间的关系,描述处理元素表示构件与其依附的硬件之间的关系,描述处理元素(硬件)的配置以及软件实现元素(构件)到处理元素的映射。(硬件)的配置以及软件实现元素(构件)到处理元素的映射。长方体图标表示分布的物理单元(构件),如源代码,对象代码或可执长方体图标表示分布的物理单元(构件),如源代码,对象代码或可执行代码。行代码。“”表示构件之间依赖的关系。表示构件之间依赖的关系。节点表示处理或计算资源。节点表示处理或计算资源。例:实现图实例(例:实现图
14、实例(2个处理器和个处理器和2个构件,处理器之间用个构件,处理器之间用TCP/IP连接,构件之间存在依赖关连接,构件之间存在依赖关系。)系。):MyCompemponentCPU1:GUICPU2TCP/IP现在学习的是第13页,共19页2.3 2.3 详细设计详细设计详细设计详细设计实现在系统分析和系统设计阶段所定义好的对实现在系统分析和系统设计阶段所定义好的对象,并且优化编码的数据结构和算法。象,并且优化编码的数据结构和算法。(逻辑结构(逻辑结构的物理实现)的物理实现)1.1.设计类设计类v容器类:由容器类:由C+C+的标准模板库(的标准模板库(STLSTL)提供。)提供。v设计对象设计对
15、象/类的属性值更新的原则:类的属性值更新的原则:显式代码:控制对象属性值的更新和输出显式代码:控制对象属性值的更新和输出周期性的重计算:适用用批处理的属性值更新周期性的重计算:适用用批处理的属性值更新触发器:适用于主动属性和依赖属性的数据更新触发器:适用于主动属性和依赖属性的数据更新v设计类中方法的原则:设计类中方法的原则:相同方法用超类继承来实现相同方法用超类继承来实现相似方法用重载或继承重定义来实现相似方法用重载或继承重定义来实现泛化设计可以通过抽象类来实现泛化设计可以通过抽象类来实现动态设计用动态联编动态设计用动态联编现在学习的是第14页,共19页2.2.设计关联设计关联v设计关联的原则
16、:设计关联的原则:关联的访问模式关联的访问模式关注不同访问的相对频率关注不同访问的相对频率(可以用索引来控制频率高的关联)(可以用索引来控制频率高的关联)对单向遍历关联,可以把关联实现设计为包含对象引用的属性对单向遍历关联,可以把关联实现设计为包含对象引用的属性参数返回个数为参数返回个数为1 1,采用,采用1 1个指针或引用个指针或引用参数返回个数大于参数返回个数大于1 1,采用指针集合或引用集合,采用指针集合或引用集合参数如果有序,可用列表参数如果有序,可用列表限定关联可用字典对象来实现限定关联可用字典对象来实现对双向关联对双向关联在关联一侧的类中加入一个属性,以便在逆向遍历时进行搜索在关联
17、一侧的类中加入一个属性,以便在逆向遍历时进行搜索在关联的两侧的类加入标志属性在关联的两侧的类加入标志属性创建独立于两个类的关联类(存储在单一对象中相关对象对的集合)。创建独立于两个类的关联类(存储在单一对象中相关对象对的集合)。如果关联类没有服务但有属性,实现关联的属性的方法如下:如果关联类没有服务但有属性,实现关联的属性的方法如下:关联为关联为1-to-11-to-1时,关联的属性可以存储为两个类中任意一个的属性时,关联的属性可以存储为两个类中任意一个的属性关联为关联为n-to-1n-to-1时,关联的属性可以存储在时,关联的属性可以存储在“n n”端的类中。端的类中。关联为关联为n-to-
18、nn-to-n时,最好创建一个关联类,将关联的属性指派个关联类时,最好创建一个关联类,将关联的属性指派个关联类现在学习的是第15页,共19页3.3.设计抽象与继承设计抽象与继承(实现代码共享和代码复用)(实现代码共享和代码复用)类继承的性质:类继承的性质:v结构上:结构上:子类的对象(实例)具有父类的所有属性子类的对象(实例)具有父类的所有属性抽象关系:子类的实例对象具有父类的所有抽象关系抽象关系:子类的实例对象具有父类的所有抽象关系v接口:基类提供的服务(方法)必须也有派生类提供。派生类接口:基类提供的服务(方法)必须也有派生类提供。派生类的实例对象同时也是基类的实例对象。的实例对象同时也是
19、基类的实例对象。v行为上的:行为上的:无多态继承:静态联编,实现代码复用和共享无多态继承:静态联编,实现代码复用和共享有多态继承:动态联编有多态继承:动态联编v数学上的:数学上的:反对称性:如果反对称性:如果A A类是类是B B类的子类,则类的子类,则B B类就不是类就不是A A类的子类。类的子类。传递性:如果传递性:如果A A类是类是B B类的子类,类的子类,B B类是类是C C类的子类,则类的子类,则A A类就是类就是C C类的间接子类。类的间接子类。现在学习的是第16页,共19页例:多继承的结构图例:多继承的结构图Organic MatterAnimalDogPlatypusMammalEndangeredLassie:DogPhyl:Platypus现在学习的是第17页,共19页4.4.建立详细设计文档建立详细设计文档详细设计文档采用与分析相同的详细设计文档采用与分析相同的UMLUML图来表图来表示。示。继承关系图继承关系图状态图状态图协作图协作图构件图构件图现在学习的是第18页,共19页现在学习的是第19页,共19页