- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章面向对象的设计
第11章 面向对象设计
11.1 面向对象设计的准则 11.7 设计任务管理子系统
11.2 启发规则 11.8 设计数据管理子系统
11.3 软件重用 11.9 设计类中的服务
11.4 系统分解 11.10 设计关联
11.5 设计问题域子系统 11.11 设计优化
11.6 设计人机交互子系统 小结
面向对象设计
设计则是把分析阶段得到的需求转变成
符合成本和质量要求的、抽象的系统实现方
案的过程。
从面向对象分析到面向对象设计
(OOD),是一个逐渐扩充模型的过程。
许多分析结果可以直接映射成设计结
果,而在设计过程中又往往会加深和补充对
系统需求的理解,从而进一步完善分析结
果。
面向对象方法的一大优势就是分析和设计活
动之间的平滑(无缝)过渡.
面向对象设计可再细分为系统设计和对
象设计。
系统设计确定实现系统的策略和目标系
统的高层结构。
对象设计确定解空间中的类、关联、接
口形式及实现服务的算法。
系统设计与对象设计之间的界限,比分
析与设计之间的界限更模糊。
11.1 面向对象设计的准则
优秀设计就是使得系统在其整个生命周
期中的总开销最小的设计, 其主要特点就是
容易维护。
1. 模块化
面向对象软件开发模式,很自然地支持模块
的设计原理:对象就是模块。
2. 抽象
面向对象方法支持过程和数据抽象。
类是一种抽象数据类型。使用者无须知道类
中数据元素的具体表示方法,就可以通过接
口使用类中定义的数据。
这类抽象称为规格说明抽象。
3. 信息隐藏
对象的封装性实现支持了信息隐藏。
4. 弱耦合
耦合主要指不同对象之间相互关联的紧密程
度。
两个对象应该通过类的接口实现耦合,而不应该依
赖于类的具体实现细节(友元)。
对象之间的两类耦合:
(1) 交互耦合:交换消息
使交互耦合尽可能松散的准则:减少消息中包含的
参数个数,降低参数的复杂程度, 减少消息数。
(2) 继承耦合:互为基类和派生类(非模块之间)
与交互耦合相反,应该提高继承耦合程度。
通过继承关系结合起来的基类和派生类,构成了更
大的模块。
5. 强内聚
在面向对象设计中存在下述3种内聚。
(1)服务内聚。一个服务应该完成一个且仅完成
一个功能。
(2 )类内聚。设计类的原则是,一个类应该只有
一个用途,它的属性和服务应该是高内聚的。类的
属性和服务应该全都是完成该类对象的任务所必需
的。如果某个类有多个用途,通常应该把它分解成
多个专用的类。
(3 )一般-特殊(继承) 内聚。设计出的一般-特殊结
构,应该符合多数人的概念,更准确地说,这种结
构应该是对相应的领域知识的正确抽取。
紧密的继承耦合与高度的一般-特殊内聚是一致
的。
6. 可重用
重用有两方面的含义:
一是尽量使用已有的类
二是在设计新类的协议时考虑将来的可重用
性。
11.2 启发规则
1. 设计结果应该清晰易懂
保证设计结果清晰易懂的主要因素如下:
(1)用词一致:一词一用。
(2 )使用已有的协议。
(3 )减少消息模式的数目。
(4 )避免模糊的定义:类的用途有限,名
清晰
2. 一般-特殊结构的深度应适当
一个中等规模(大约包含100个类)的系
统中,类等级层次数应保持为7 ±2 。
不应该仅仅从方便编码的角度出发随意
创建派生类,应该使一般-特殊结构与领域知
识或常识保持一致。
3. 设计简单的类
小而简单的类便于开发和管理(高内
聚)。为使类保持简单,应该注意以下几点。
(1) 避免包含过多的属性:完成的功能可能
太多了。
(2) 有明确的定义:任务应该简单。
(3) 简化对象之间的合作关系。如果需要多
个对象协同配合才能做好一件事,则破坏了
类的简明性和清晰性。
(4) 不要提
文档评论(0)