- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章面向对象设计及实现
7.2.3 面向对象设计
面向对象设计(OOD,Object-Oriented Design)是面向对象分析到实现的一个桥梁。面向对象分析是将用户需求经过分析后,建立问题域精确模型的过程;而面向对象设计则根据面向对象分析得到的需求模型,建立求解域模型的过程。即分析必须搞清楚系统“做什么”,而设计必须搞清楚系统“怎么做”,从分析到设计不是传统方法的转换,而是平滑(无缝)过渡,而求解域模型是系统实现的依据。
;面向对象设计可分为系统设计和类(对象)设计。系统设计是高层设计,主要确定实现系统的策略和目标系统的高层结构。类--对象设计是低层设计,主要确定解空间中的类、关联、接口形式及实现服务的算法;高层设计主要确定系统的结构、用户界面,即用来构造系统的总的模型,并把任务分配给系统的各个子系统。
;1.面向对象设计的设计准则
(1) 模块化
模块化是软件设计的重要准则。在面向对象开发方法中,将对象定义为模块。对象把数据结构和作用在数据上的操作(方法)封装起来构成模块。对象是组成系统的基本模块。
(2) 抽象
类是一种抽象数据类型,在该数据类型之上,可以创建对象(类的成员)。类包含相似对象的共同属性和服务,它对外定义了公共接口,构成了类的规格说明(即协议),供外界合法访问。
(3) 信息隐藏
在面向对象方法中,对象是属性和服务的封装体,这就实现了信息隐藏。类结构分离了接口与实现,类的属性的表示方法和操作的实现算法,对于类的用户来说,都应该是隐藏的,用户只能通过公共接口访问类中的属性。;(4) 弱耦合
所谓耦合,是指一个软件结构内不同模块之间互连的依赖关系。依赖关系越多耦合度越强,依赖关系越少耦合度越弱。在面向对象方法中,对象是最基本的模块,不同对象之间相互关联的依赖关系表示了耦合度。衡量设计优良的一个重要标准就是弱耦合,弱耦合的设计中某个对象的改变不会或很少影响到其他对象。
不同对象之间耦合是不可避免的。两个对象必须相互联系相互依赖时,应该通过类的协议(即公共接口)实现两个对象相互依赖(耦合),而不是通过类的具体实现细节来描述。
(5) 强内聚
所谓内聚,是一个模块内各个元素彼此结合的紧密程度。结合得越紧密内聚越强,结合得越不紧密内聚越弱。强内聚也是衡量设计优良的一个重要标准。在面向对象设计中,内聚可分为下述三类:;1) 服务(操作)内聚。一个服务应该是单一的,即只完成一个任务。
2) 类内聚。类内聚要求类的属性和服务应该是高内聚的,而且它们应该是系统任务所必需的。一个类应该只有一个功能,如果某个类有多个功能,通常应该把它分解成多个专用的类。
3) 一般-特殊内聚。一般-特殊内聚表示:一般-特殊结构符合领域知识的表示形式,也就是说,特殊类应该尽量地继承一般类的属性和服务。这样的一般-特殊结构是高内聚的。
(6)可重用
在面向对象设计中,一个类的设计应该具有通用性,为开发相似的系统提供软件重用可能。因此,在软件开发过程中,为了实现重用,既要尽量重用已有的类,又要创建可重用的新类。
;2.设计策略
在使用面向对象方法学开发软件的实践中,得出了下面一些基于经验的启发规则,这些规则往往能帮助软件开发人员设计出好的方案来,以保证软件的质量。
(1)设计结果应该清晰易懂
(2)一般-特殊结构的深度应适当
(3)设计简单的类
(4)设计简单的协议
(5)设计简单的服务
(6)减少设计变动
;3.系统分解与组织
面向对象设计同过程设计一样,自顶向下进行功能分解。在设计比较复杂的应用系统时,将系统分解成若干个比较小的部分,再分别设计每个部分。这样既简化了应用系统,又降低了设计的难度,并有利于实现和维护。
系统是根据功能来分解的,我们将系统分解的各个部分(即系统的主要组成部分)称为子系统。
子系统间交互的形式和交互的信息由接口确定,因此,接口应该简单、明确。;(1)面向对象设计的五个层次、四个部分
面向对象设计模型同样由主题、类-&-对象、结构、属性和服务等五个层次组成,并且又扩充了问题域(PDC)、人机交互(HIC)、任务管理(TMC)和数据管理(DMC)四个部分。
典型的面向对象设计模型如图3.3.23示。
;图3.3.23 典型的面向对象设计模型
;(2)子系统间的交互方式
在应用系统中,子系统之间的关系可分为客户/服务器关系和同等伙伴关系两种。这两种关系对应两种交互的方式,即客户/服务器交互方式和同等伙伴交互方式。
通常,系统使用客户/服务器关系,因为单向交互更容易理解,也更容易设计和修改,而双向交互相对困难些。
(3) 系统组织
将子系统组织成完整的系统有两种方式,即水平层
文档评论(0)