软件设计
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
泛化(Generalization)
【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
【箭头指向】:带三角箭头的实线,箭头指向父类
实现(Realization)
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口
关联(Association)
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者
上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。
上图为自身关联:
聚合(Aggregation)
【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体
组合(Composition)
【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
【代码体现】:成员变量
【箭头及指向】:带实心菱形的实线,菱形指向整体
依赖(Dependency)
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者
各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
下面这张UML图,比较形象地展示了各种类图关系:
转自: https://www.zybuluo.com/linux1s1s/note/158452
- 大小: 5.9 KB
- 大小: 6.1 KB
- 大小: 18.1 KB
- 大小: 4.7 KB
- 大小: 7.6 KB
- 大小: 6.4 KB
- 大小: 6.1 KB
- 大小: 25.7 KB
分享到:
相关推荐
UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖
本文给大家总结了UML类图中几种比较常用的关系小总结,需要的朋友可以参考下
UML类图几种关系的总结,泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition...
本文档是对类图的几种关系的描述,希望对大家学习UML有用!
微服务系列 用户服务 docker docker安装mysql 外部volume挂载资料卷 ef生成数据库 生成数据和数据初始化 dapper dapper contain,仓储,事务,工作单元应用 webapi Restful ...UML类图几种关系 MongoDB
学习《设计模式》好长时间了,可是到现在还是分不太清楚几种UML中的几种关系。如果这几种关系理解的不是很透彻的话,那么会直接影响到对类图之间关系的理解,下面就来分析下几种关系吧!
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别 这是一堂关于UML基础知识的补习课;现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更...以下就分别介 绍这几种关系:
1、一个设计得好的OO系统具有( )的特征。...6、类和接口的关系类似于下面哪种类型的关系。 A.关联和聚集 B.关联和组合 C.脚本和用例 D.包和子系统 7、如图所示,类PaymentController必须实现哪些方法?
matlab终止以下代码 第四单元总结 总 本部分是2019年北航面向对象(OO)课程第四单元作业(UML)的总结。两次作业的要求大致如下: 第一次作业:实现一个UML类图解析器,可以...类图中涉及到以下几种类型的对象 UMLC
UML基础教程,详细介绍了UML几种不同的画图标准,用例图、类图、序列图等等
前面我们主要讨论的是UML类图,下面我们要讨论的是另一种UML图——交互图(InteractionDiagram)。交互图描述的是一组对象之间的交互过程,或者说,这里我们实际上要回答这样一个问题:“方法调用过程在UML中怎样...
1.2 画法这里只描述UML类图的画法:类之间的几种关系:泛化(Generalization)、实现(Realization)、关联(Association)
图 5.4 显示了顾客在 ATM 机上进行操作会经历的几种状态,及各种状态之间的转换条件。状态图使得我们可以了解系统中对象的状态变化过程和转换条件。 通过本实例,我们可以看到 UML 是如何帮助我们设计和描述软件...
第16章 UML类图 16.1 应用UML:常用类图表示法 16.2 定义:设计类图 16.3 定义:类元 16.4 表示UML属性的方式:属性文本和关联线 16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 ...
利用 Graphviz 去生成 UML 类图有几个好处:用文本表示图,容易更新,容易做版本管理。能自动排布节点位置,在大型复杂的图特别方便。统一文档风格。实际上,文档生成工具 也是采用 Graphviz 生成类图的。不过,我们...
UML建模入门主要包括业务流程建模、需求分析、系统设计、详细设计等几个方面。 四、UML常用视图分类 UML提供了多种视图,用于描述软件系统的不同方面,包括: * 用例图:描述系统的功能和行为 * 需求图:描述系统...