面向对象设计及实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CH7 面向对象技术
面向对象设计可分为系统设计和类 ( 对象 ) 设计。系
统设计是高层设计,主要确定实现系统的策略和 目标系统的高层结构。类-&-对象设计是低层设计,
主要确定解空间中的类、关联、接口形式及实现
服务的算法;高层设计主要确定系统的结构、用 户界面,即用来构造系统的总的模型,并把任务 分配给系统的各个子系统。
主题层 类-& -对象层 结构层 属性层 服务层
人 机 界 面 HIC
问 题 论 域 PDC
任 务 管 理 TMC
数 据 管 理 DMC
图3.3.23 典型的面向对象设计模型
CH7 面向对象技术
(2)子系统间的交互方式
在应用系统中,子系统之间的关系可分为客户 /服务器关系和同等伙伴关 系两种。这两种关系对应两种交互的方式,即客户/服务器交互方式和同等 伙伴交互方式。 通常,系统使用客户/服务器关系,因为单向交互更容易理解,也更容易 设计和修改,而双向交互相对困难些。 (3) 系统组织 将子系统组织成完整的系统有两种方式,即水平层次组织和垂直块组织。 1) 层次组织 层次组织是将子系统按层组织成为一个层次软件系统,每层是一个子系 统。上层建立在下层的基础上,下层为上层提供必要的服务。低层子系统提 供服务,相当于服务器,上层子系统使用下层提供的服务,相当于客户。
口应该简单、明确。
CH7 面向对象技术
来自百度文库
(1)面向对象设计的五个层次、四个部分
面向对象设计模型同样由主题、类-&-对象、结构、 属性和服务等五个层次组成,并且又扩充了问题域
(PDC)、人机交互(HIC)、任务管理(TMC)和数据管理 (DMC)四个部分。
典型的面向对象设计模型如图3.3.23示。
CH7 面向对象技术
CH7 面向对象技术
2.设计策略
在使用面向对象方法学开发软件的实践中,得出了下面一 些基于经验的启发规则,这些规则往往能帮助软件开发人员 设计出好的方案来,以保证软件的质量。 (1)设计结果应该清晰易懂 (2)一般-特殊结构的深度应适当
(3)设计简单的类
(4)设计简单的协议 (5)设计简单的服务 (6)减少设计变动
不同对象之间耦合是不可避免的。两个对象必须相互联系相互依赖时, 应该通过类的协议 (即公共接口)实现两个对象相互依赖(耦合),而不是通 过类的具体实现细节来描述。 (5) 强内聚 所谓内聚,是一个模块内各个元素彼此结合的紧密程度。结合得越紧 密内聚越强,结合得越不紧密内聚越弱。强内聚也是衡量设计优良的一个 重要标准。在面向对象设计中,内聚可分为下述三类:
CH7 面向对象技术
1.面向对象设计的设计准则
(1) 模块化 模块化是软件设计的重要准则。在面向对象开发方法中,将对象定义为 模块。对象把数据结构和作用在数据上的操作 (方法)封装起来构成模块。对 象是组成系统的基本模块。 (2) 抽象
类是一种抽象数据类型,在该数据类型之上,可以创建对象(类的成员)。 类包含相似对象的共同属性和服务,它对外定义了公共接口,构成了类的规 格说明(即协议),供外界合法访问。 (3) 信息隐藏
CH7 面向对象技术 1) 服务(操作)内聚。一个服务应该是单一的,即只完成一个任务。 2) 类内聚。类内聚要求类的属性和服务应该是高内聚的,而且它们应该是 系统任务所必需的。一个类应该只有一个功能,如果某个类有多个功能, 通常应该把它分解成多个专用的类。 3) 一般-特殊内聚。一般-特殊内聚表示:一般 -特殊结构符合领域知识的 表示形式,也就是说,特殊类应该尽量地继承一般类的属性和服务。这样 的一般-特殊结构是高内聚的。 (6)可重用 在面向对象设计中,一个类的设计应该具有通用性,为开发相似的系统 提供软件重用可能。因此,在软件开发过程中,为了实现重用,既要尽量 重用已有的类,又要创建可重用的新类。
CH7 面向对象技术
[补充]: 概括地说,面向对象软件开发方法采用面向对象设计 (OOD) 技术进行问题解决方案的设计工作,它将问题的解决方案表述 为: 类+关联 的形式,其中,类包括问题空间类、用户界面类、任务管理类 和数据管理类,是从设计的角度出发对问题解决方案中的对象 的抽象和描述,关联则用于描述这些类和类之间的关系。 因此,面向对象设计工作主要包括问题空间类、用户界面 类、任务管理类和数据管理类的设计,具体工作内容和步骤如 图3.3.25所示。
在面向对象方法中,对象是属性和服务的封装体,这就实现了信息隐藏。 类结构分离了接口与实现,类的属性的表示方法和操作的实现算法,对于类 的用户来说,都应该是隐藏的,用户只能通过公共接口访问类中的属性。
CH7 面向对象技术 (4) 弱耦合
所谓耦合,是指一个软件结构内不同模块之间互连的依赖关系。依赖 关系越多耦合度越强,依赖关系越少耦合度越弱。在面向对象方法中,对 象是最基本的模块,不同对象之间相互关联的依赖关系表示了耦合度。衡 量设计优良的一个重要标准就是弱耦合,弱耦合的设计中某个对象的改变 不会或很少影响到其他对象。
CH7 面向对象技术
2) 块组织
块组织将系统垂直地分解成若干个相对独立的、弱 耦合的子系统,一个子系统相当于一块,每块提供一种类 型的服务。例如,图3.3.24示一个典型应用系统的组织结 构。
应用包 人机交 互控制 窗口图形 屏幕图形 像素图形 操作系统 计算机硬件 仿真 软件包
( 4 )设计系统的拓扑结构:构成完整系统的拓扑结构有: 管道型、树型、星型等。
CH7 面向对象技术
3.系统分解与组织
面向对象设计同过程设计一样,自顶向下进行功能分解。 在设计比较复杂的应用系统时,将系统分解成若干个比较小
的部分,再分别设计每个部分。这样既简化了应用系统,又 降低了设计的难度,并有利于实现和维护。
系统是根据功能来分解的,我们将系统分解的各个部分(即 系统的主要组成部分)称为子系统。 子系统间交互的形式和交互的信息由接口确定,因此,接
CH7 面向对象技术
图3.3.25 面向对象设计工作内容和步骤
CH7 面向对象技术
一、问题空间类
是指那些直接从面向对象分析模型设计得到的类,它是 使软件系统能够实现对问题的求解的最基本的类,也是面向 对象软件系统的核心类。 利用面向对象分析技术对问题进行了分析描述之后,就 可以直接将其结果用于问题空间类的设计,即直接将分析所 得到的对象、对象与对象之间的关联确定为类以及类与类之 间的关联,这些直接从分析结果得到的类就是问题空间类。
面向对象设计可分为系统设计和类 ( 对象 ) 设计。系
统设计是高层设计,主要确定实现系统的策略和 目标系统的高层结构。类-&-对象设计是低层设计,
主要确定解空间中的类、关联、接口形式及实现
服务的算法;高层设计主要确定系统的结构、用 户界面,即用来构造系统的总的模型,并把任务 分配给系统的各个子系统。
主题层 类-& -对象层 结构层 属性层 服务层
人 机 界 面 HIC
问 题 论 域 PDC
任 务 管 理 TMC
数 据 管 理 DMC
图3.3.23 典型的面向对象设计模型
CH7 面向对象技术
(2)子系统间的交互方式
在应用系统中,子系统之间的关系可分为客户 /服务器关系和同等伙伴关 系两种。这两种关系对应两种交互的方式,即客户/服务器交互方式和同等 伙伴交互方式。 通常,系统使用客户/服务器关系,因为单向交互更容易理解,也更容易 设计和修改,而双向交互相对困难些。 (3) 系统组织 将子系统组织成完整的系统有两种方式,即水平层次组织和垂直块组织。 1) 层次组织 层次组织是将子系统按层组织成为一个层次软件系统,每层是一个子系 统。上层建立在下层的基础上,下层为上层提供必要的服务。低层子系统提 供服务,相当于服务器,上层子系统使用下层提供的服务,相当于客户。
口应该简单、明确。
CH7 面向对象技术
来自百度文库
(1)面向对象设计的五个层次、四个部分
面向对象设计模型同样由主题、类-&-对象、结构、 属性和服务等五个层次组成,并且又扩充了问题域
(PDC)、人机交互(HIC)、任务管理(TMC)和数据管理 (DMC)四个部分。
典型的面向对象设计模型如图3.3.23示。
CH7 面向对象技术
CH7 面向对象技术
2.设计策略
在使用面向对象方法学开发软件的实践中,得出了下面一 些基于经验的启发规则,这些规则往往能帮助软件开发人员 设计出好的方案来,以保证软件的质量。 (1)设计结果应该清晰易懂 (2)一般-特殊结构的深度应适当
(3)设计简单的类
(4)设计简单的协议 (5)设计简单的服务 (6)减少设计变动
不同对象之间耦合是不可避免的。两个对象必须相互联系相互依赖时, 应该通过类的协议 (即公共接口)实现两个对象相互依赖(耦合),而不是通 过类的具体实现细节来描述。 (5) 强内聚 所谓内聚,是一个模块内各个元素彼此结合的紧密程度。结合得越紧 密内聚越强,结合得越不紧密内聚越弱。强内聚也是衡量设计优良的一个 重要标准。在面向对象设计中,内聚可分为下述三类:
CH7 面向对象技术
1.面向对象设计的设计准则
(1) 模块化 模块化是软件设计的重要准则。在面向对象开发方法中,将对象定义为 模块。对象把数据结构和作用在数据上的操作 (方法)封装起来构成模块。对 象是组成系统的基本模块。 (2) 抽象
类是一种抽象数据类型,在该数据类型之上,可以创建对象(类的成员)。 类包含相似对象的共同属性和服务,它对外定义了公共接口,构成了类的规 格说明(即协议),供外界合法访问。 (3) 信息隐藏
CH7 面向对象技术 1) 服务(操作)内聚。一个服务应该是单一的,即只完成一个任务。 2) 类内聚。类内聚要求类的属性和服务应该是高内聚的,而且它们应该是 系统任务所必需的。一个类应该只有一个功能,如果某个类有多个功能, 通常应该把它分解成多个专用的类。 3) 一般-特殊内聚。一般-特殊内聚表示:一般 -特殊结构符合领域知识的 表示形式,也就是说,特殊类应该尽量地继承一般类的属性和服务。这样 的一般-特殊结构是高内聚的。 (6)可重用 在面向对象设计中,一个类的设计应该具有通用性,为开发相似的系统 提供软件重用可能。因此,在软件开发过程中,为了实现重用,既要尽量 重用已有的类,又要创建可重用的新类。
CH7 面向对象技术
[补充]: 概括地说,面向对象软件开发方法采用面向对象设计 (OOD) 技术进行问题解决方案的设计工作,它将问题的解决方案表述 为: 类+关联 的形式,其中,类包括问题空间类、用户界面类、任务管理类 和数据管理类,是从设计的角度出发对问题解决方案中的对象 的抽象和描述,关联则用于描述这些类和类之间的关系。 因此,面向对象设计工作主要包括问题空间类、用户界面 类、任务管理类和数据管理类的设计,具体工作内容和步骤如 图3.3.25所示。
在面向对象方法中,对象是属性和服务的封装体,这就实现了信息隐藏。 类结构分离了接口与实现,类的属性的表示方法和操作的实现算法,对于类 的用户来说,都应该是隐藏的,用户只能通过公共接口访问类中的属性。
CH7 面向对象技术 (4) 弱耦合
所谓耦合,是指一个软件结构内不同模块之间互连的依赖关系。依赖 关系越多耦合度越强,依赖关系越少耦合度越弱。在面向对象方法中,对 象是最基本的模块,不同对象之间相互关联的依赖关系表示了耦合度。衡 量设计优良的一个重要标准就是弱耦合,弱耦合的设计中某个对象的改变 不会或很少影响到其他对象。
CH7 面向对象技术
2) 块组织
块组织将系统垂直地分解成若干个相对独立的、弱 耦合的子系统,一个子系统相当于一块,每块提供一种类 型的服务。例如,图3.3.24示一个典型应用系统的组织结 构。
应用包 人机交 互控制 窗口图形 屏幕图形 像素图形 操作系统 计算机硬件 仿真 软件包
( 4 )设计系统的拓扑结构:构成完整系统的拓扑结构有: 管道型、树型、星型等。
CH7 面向对象技术
3.系统分解与组织
面向对象设计同过程设计一样,自顶向下进行功能分解。 在设计比较复杂的应用系统时,将系统分解成若干个比较小
的部分,再分别设计每个部分。这样既简化了应用系统,又 降低了设计的难度,并有利于实现和维护。
系统是根据功能来分解的,我们将系统分解的各个部分(即 系统的主要组成部分)称为子系统。 子系统间交互的形式和交互的信息由接口确定,因此,接
CH7 面向对象技术
图3.3.25 面向对象设计工作内容和步骤
CH7 面向对象技术
一、问题空间类
是指那些直接从面向对象分析模型设计得到的类,它是 使软件系统能够实现对问题的求解的最基本的类,也是面向 对象软件系统的核心类。 利用面向对象分析技术对问题进行了分析描述之后,就 可以直接将其结果用于问题空间类的设计,即直接将分析所 得到的对象、对象与对象之间的关联确定为类以及类与类之 间的关联,这些直接从分析结果得到的类就是问题空间类。