当前课程知识点:面向对象分析与设计 >  面向对象建模 >  类之间的关系 >  类之间的关系

返回《面向对象分析与设计》慕课在线视频课程列表

类之间的关系在线视频

下一节:用例模型

返回《面向对象分析与设计》慕课在线视频列表

类之间的关系课程教案、知识点、字幕

同学们 上节课我们介绍了对象和类的基本概念

以及类的关联 聚集和组合关系

这节课我们继续介绍类的其他关系

首先我们介绍类的泛化关系

如果一个类可以共享另外一个类的结构行为 则称这两个类之间具有泛化关系

泛化关系可以通俗的理解为一种继承关系

现实世界中 子女可以继承父母的财产

软件世界中 一个子类可以继承它的基类的属性和行为

我们就说 这个子类和它的基类之间具有泛化关系

泛化关系中 根据一个子类可以同时继承一个或者多个父类

我们可以把它细分为单一继承和多重继承

泛化关系总结下 子类是父类的一种

用英文来讲“is a kind of”(...的一种)这样的一种关系

这点和前面介绍的聚集和组合关系不同

聚集和组合关系是整体和部分关系 泛化关系是一种子类关系

下面我们介绍依赖关系

依赖关系是一种暂时的 一个类的行为可能会受到另外一个类的影响

我们将依赖关系总结成一种非结构化的使用关系

例如 放假时同学们乘坐火车回家

从上车到下车中间的旅途中 我们就需要火车司机提供安全可靠准点的旅程服务

在这个过程中 是否能够安全的完成回家旅程就依赖于火车司机

这种情况下 同学就和火车司机之间建立了依赖关系

同学使用到火车司机的服务

依赖关系建立在两个类之间 一般来讲 客户端类依赖供应者类

因为客户端类会请求供应者类提供服务

依赖关系还可以建立在两个组件之间

最后依赖关系也可以建立在两个包之间

包是一个容器 在包之中包含多个类

只要前面这个包中的某一个类和后面这个包的某一个类之间有依赖关系

我们就说这两个包之间也具有依赖关系

下面我们介绍一下实现关系

在实现关系中 我们可以用接口来描述一个类对外应该提供的服务的规范

然后类去描述它实现的接口

它要提供接口所规定的应该提供的相应的服务和操作

所以实践关系主要描述类和类所实现的接口之间

接口定义规范 类实现接口来提供规范的运行实现

除此之外 组件和子系统也可以建立和它所实现的接口之间的实现关系

比较特殊的是用例实现和用例之间的实现关系

我们说用例描述系统的功能需求 它定义系统对外提供的行为和规范

而用例实现则描述了软件系统内部是如何来实现系统的用例规范的

所以在用例实现和用例之间也可以建立实现关系

实现关系用虚线带大箭头来描述

下面我们介绍一个概念叫多态

在家中 我们用遥控器来控制电视

在电子市场上我们可以买到一种万能遥控器

它可以对不同品牌不同型号的电视都进行操作

但是我们会可能发现 在不同电视上按同一个按钮会有不同的响应 不同的行为

例如按了声音放大按钮 在康佳的电视上可能声音音量增加了

但换了长虹的电视 可能会换频道 换了TCL电视可能会变成音量减小

同一个操作 但软件系统或者说组件 类有不同的行为 我们把这种现象称之为多态

多态实现的基础是接口

接口描述了一种规约 描述了实现接口的元素必须要提供的一些特征和行为

通过接口我们描述了强制性的建立了服务的提供者和服务的消费者之间的一种契约

所以接口可以细分为两类 一类称之为提供接口 一类叫请求接口

提供接口描述了一个元素

比如说类组件它所暴露给外部环境

它所能够支持外部别的对象能够请求或者访问的一些行为

第二类叫请求接口 请求接口指的是一个元素比如说类或者子系统

它在完成内部功能时需要外部其他元素为他提供的各种服务或者能功能

把它称之为请求接口

这里我们给出在面向对象里面提供接口的表述方式

上面表述是RUP里面 也就是ration(Ration Rose)里面 它特有的一种描述方式

我们把一个提供接口定义成一个圆圈

例如在机床控制系统中 所有的机床都必须提供远程的传感器访问接口

下面这中方式我们采用传统的UML的方式进行描述

我们前面定义了远程传感器的一个接口 然后定义不同的机器 类去实现这个接口

实现这个接口之后 就能提供这个接口中所规定的相应的特征或者服务

第二类是请求接口 同样有两种表述方式

在ration里面 我们把请求接口画成一个半圆 和类之间用实线描述

就表示前面的类需要或者说请求了远程传感器的接口

在这里我们前面的类是一个远程控制器

在标准的UML中则把它定义成接口和类之间通过依赖关系来描述前面类所需要的请求的接口

在完整的类图里面 我们可以将请求接口和提供接口结合起来构建一个完整的类图设计

上面是ration里特有的自定义的描述方式

它表示了远程控制器请求这个接口 而这个接口被这三个类所实现

换句话讲 通过这样一个请求和提供接口的一个结合

前面的控制器就可以控制操作后面的三个机器

在标准的UML中 我们把它画成下面这样前面依赖于这个接口

而这个接口分别被三个类所实现

今天我们介绍了面向对象中的类之间的其他几个关系

主要有泛化关系 依赖关系和实现关系

谢谢大家

面向对象分析与设计课程列表:

面向对象概述

-软件开发过程中的主要问题和好的解决方法

--软件开发过程中的主要问题和好的解决方法

--软件开发过程中的主要问题和好的解决方法

统一软件开发(RUP)

-RUP软件开发模型的特点

--RUP软件开发模型的特点

--RUP软件开发模型的特点

面向对象建模

-四个基本原则

--四个基本原则

--四个基本原则

-对象和类

--对象和类

--对象和类

-类之间的关系

--类之间的关系

--类之间的关系

需求概述

-用例模型

--用例模型

--用例模型

-用例之间的关系

--用例之间的关系

--用例之间的关系

-用例建模

--用例建模

--用例建模

分析与设计概述

-分析与设计概述

--分析与设计概述

--分析与设计概述

架构分析

-架构分析基本概念

--架构分析基本概念

--架构分析基本概念

-定义模型的高层组织结构

--定义模型的高层组织结构

--定义模型的高层组织结构

-确定分析机制、确定关键概念、创建用例实现

--确定分析机制、确定关键概念、创建用例实现

--确定分析机制、确定关键概念、创建用例实现

用例分析概述

-用例分析概述

--用例分析概述

--用例分析概述作业

-控制类

--控制类

--控制类

-用例行为和类的关系

--用例行为和类的关系

--用例行为与类的关系

识别设计类

-识别设计元素概述

--识别设计元素概述

--识别设计元素概述

-识别子系统及接口

--识别子系统和接口

--识别子系统及接口

描述运行态软件体系架构

-描述运行态软件体系架构

--描述运行态软件体系架构

--描述运行态软件体系架构

描述分布式系统架构

-描述分布式系统架构概述

--描述分布式系统架构概述

--描述分布式系统架构概述

用例设计

-用例设计描述

--用例设计描述

--用例设计描述

子系统设计

-子系统设计概述

--子系统设计概述

--子系统设计概述

类设计

-创建初始设计类、定义类操作方法

--创建初始设计类、定义类操作方法

--创建初始设计类、定义类操作方法

-定义类状态

--定义类状态

--定义类状态

-定义类之间的依赖关系、关联关系以及多重性设计

--定义类之间的依赖关系、关联关系以及多重性设计

--定义类之间的依赖关系、关联关系以及多重性设计

-定义类的泛化关系、解决用例冲突、非功能性需求

--定义类的泛化关系、解决用例冲突、非功能性需求

--定义类的泛化关系、解决用例冲突、非功能性需求

类之间的关系笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。