- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象设计综述重点讲义
面向对象设计 概述 ? 面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。 例如,在隧道设计中, ----该项目中,分析师经过分析、抽象拿出一个方案即项目需求,他们的身份就是OOA。 ----设计师在以上需求方案的基础上,经过细化、模块化,就拿出了一个具体的、现实可行的施工方案,这就是OOD了。 ----OOP就是施工队了,他们按照具体的施工方案,完成项目施工,并且验收合格,整个项目就完成了。 通过以上的例子,我们可以清晰的看到OOD方法在整个OO方法中所处的地位。 概念及表示法 概念:OOD运用与OOA相同的的概念 ----没有增加新概念 OOD模型框架 OOD过程实现 问题域部分的设计: 1什么是问题域部分? 2问题域设计的主要内容 什么是问题域部分? 对OOA结果按实现条件进行补充和调整,所得到的结果就是OOD模型的问题域部分。进行问题域部分的设计要求我们在继续运用OOA方法的同时,也要根据实现条件进行OOD设计,而且由于需求发生变化或发现了错误,就要对OOA的结果就行修改。 问题域设计的主要内容: ----针对编程语言进行调整 ----增加一般类以建立共同协议 ----实现复用 ----提高性能 ----为实现对象的永久存储所做的修改 ----完善对象的细节 ----定义对象的实例 ----对辅助模型、规约模型的修改 针对语言支持能力的调整 在OOA分析阶段,会有单继承和多继承的出现,那么在OOD阶段就要考虑实现问题了,有的语言不支持多继承(C#.NET和JAVA),所以就必须要考虑由多继承转化为单继承的实现。常用的有两种实现办法: ⅰ 利用聚合 ⅱ 利用平面化(增加一个类,化解多继承) 增加一般类以建立共同协议 ⅰ增加根类:将所有的类组织在一起,提供全系统通用的协议,即设计好接口。例如,提供创建、复制、删除等操作。 ⅱ 增加其他的一般类 :提供局部通用的协议。例如,提供永久存储及恢复功能。 为实现复用所做的必要工作 实现复用不单单针对本次软件项目开发中,把类封装的更为普遍,更为通用,有利于下次项目的开发。 目标:尽可能使复用的成分增多,使新开发的成分减少。 提高性能 ⅰ调整对象分布 ⅱ 设立缓存区以缩小对象存取时间 ⅲ 合并通讯频繁的类 ⅳ 增加属性以减少重复计算 ⅴ 降低算法的计算复杂性 ⅵ 细化对象的分类 ⅶ 将复杂结构化为整体-----部分结构 为实现对象永久存储所做的修改 主要是考虑到存入数据库的问题。在关系数据库中,不能存入对象,所以要进行必要的转换。一个类往往对应一个表格,一个对象往往对应表格的一行。 完善对象细节 ⅰ完善与问题域有关的属性和操作 在OOA阶段允许不详尽,OOD必须加以完善 ⅱ解决OOA阶段推迟考虑的问题,包括:因封装原则而设立的对象操作 与对象永久存储方案有关的属性和操作 ⅲ设计类的每个操作 必要时用流程图或者活动图表示 用属性表示算法所需的数据结构 ⅳ设计表示关联的属性 区分多重性的3种情况,决定属性设置在哪一端 ⅴ设计表示聚合的属性 区分组合与松散的聚合 对于组合,用嵌套对象实现 对于松散的聚合,采用与关联相同的策略 定义对象实例 很多时候我们往往是忽略对象实例在运行时数量的控制。实现有规划了解对象实例,有利于修改实现方法。 OOD过程实现 人机交互部分的设计: 1什么是人机交互部分? 2如何分析人机交互部分? 3如何设计人机交互部分? 什么是人机交互部分? 人机交互部分是OOD模型的外围组成部分之一,是系统中负责人机交互的部分。设计人机交互就是设计输入和输出其中所包含的对象(称作界面对象)以及他们之间的关系构成了系统的人机界面。 界面的设计,最初是由设计人员按用户需求设计出界面(
文档评论(0)