- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* §5. 设计类中的服务 2、设计实现方法 ⑴ 算法设计:要求做到易修改,并且复杂度低(即效率高) 易理解,易实现。 ⑵ 数据结构设计:需要考虑具体的物理结构的选择。 ⑶ 新添用于存放内部处理中间结果的class;引入新的低层操作,进一步细化。 * §6. 设计关联 1、单向关联 例: 雇 员 公 司 被雇用 1+ ? 由雇员找其所属公司,则设雇主为其属性,即一单向指针 雇 员 雇主 公 司 ? 由公司找其下属某一雇员,则有两种方法: 方法1:遍历所有雇员,找雇主匹配且满足特征的雇员。(省空间) * §6. 设计关联 方法2:设公司的属性雇员为一指针集。(快速) 雇 员 公 司 雇员 指针集 2、双向关联 方法1:将上述两种单向关联结合使用 雇 员 雇主 公 司 雇员 指针集 雇 员 公 司 关联类 雇主 雇员 工资 方法2:另设关联类(特别适用于链属性) * 雇 员 公 司 find_skill 雇 用 1+ 技 能 具有技能 1+ 1+ §7. 优 化 1、确定优先级: 必须站在全局高度确定各项质量指标的优先级,在优化设计时制定折衷方案。切忌各子系统自以为是,导致最终优化目标对立。 最常见的情况是在效率与清晰性之间的折衷。 2、提高效率的技术 ① 增加关联(类) 例:设某公司有2000名雇员,平均每名雇员会10种技能,其中有5人精通日语,现要查询公司中会讲日语的雇员是哪些人 * 雇 员 公 司 精通语言 1+ 语 言 1+ §7. 优化 方法1:嵌套查询 —— 遍历雇员2000次,而对每个雇员遍历技能10次。命中率为1/4000。 方法2:用Hash Table实现技能,使“会讲日语”对应唯一的技能对象,则命中率上升为1/400。 方法3:增加一个额外的限定关联“精通语言”,即可立刻查得结果。 * §7. 优化 ② 调整查询次序,优化算法 例如公司有5名会日语的雇员,有200名会法语的雇员。现要找日、法语均会的雇员,则应先找的 雇员,再从中找 的雇员。 会日语 会法语 ③ 保留内部中间过程产生的派生属性。 3、调整继承关系 ① 向上归纳 ② 向下派生 建立这样的索引必然多占空间,而且基关联改变时也必须相应地修改索引。因此,应只给那些经常执行并且开销大、命中率低的查询建立索引。 * * * §7. 优化 例:实现 Stack 方法1:从 List 派生 push = last + add pop = last + remove 问题:Stack.first 也是合法的。 List add remove first last Stack push pop Inheritance ③ 利用委托(commitment) 方法2:把 List 作为 Stack 的一个 attribute ,称为 commitment。这种方法比较安全(Stack.first 为非法)。 List add remove first last Stack List 1 push pop Commitment * §8. 小结 1、面向对象设计就是用面向对象观点建立求解空间模型的过程。通过面向对象分析得出的问题域模型为建立求解空间模型奠定了坚实基础。分析与设计本质上是一个多次反复迭代的过程,而面向对象分析与面向对象设计的界限尤其模糊。 2、优秀设计是使得目标系统在其整个生命周期中总开销最小的设计。 3、重用是提高软件生产率和目标系统质量的重要途径。 4、大多数求解空间模型,在逻辑上由4大部分组成。问题域子系统、人机交互子系统、任务管理子系统和数据管理子系统的设计方法。类中服务的设计方法及实现关联的策略。 * * 1、菜单(menu) 按照显示方式 正文菜单、图标菜单、正文和图标混合菜单,如“开始”菜单。 用户界面的基本类型 从用户角度出发,用户界面设计的类型主要有问题描述语言,数据表格、图形与图标、菜单、对话框及窗口等。每一种类型都有不同的特点和性能。讨论以下类型:菜单、图象、对话框和窗口。 按屏幕位置和操作风格 固定位置、浮动位置(弹出)、下拉式、嵌入式 混合菜单 固定及下拉菜单 固定菜单 下拉菜单 * 2、图 像 在用户界面中,加入丰富多彩的画面,将能够更加形象地为用户提供有用的信息,以达到可视化的目的。主要的处理操作有:图像的隐蔽和再现、屏幕滚动和图案显示、动画等。 2、图 像 * 3、对话框 对话框是在需要时,显示在屏幕上一个矩形区域内的图形和正文信息。通过对话,实现系统和用户之间的通信
文档评论(0)