UML关系类图

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

1. 泛化(Generalization

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

【箭头指向】:带三角箭头的实线,箭头指向父类

        2. 实现(Realization

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

【箭头指向】:带三角箭头的虚线,箭头指向接口

        3. 关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

下图为自身关联:

        4. 聚合(Aggregation

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量

【箭头及指向】:带空心菱形的实心线,菱形指向整体

        5. 组合(Composition)

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

        6. 依赖(Dependency)

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

各种关系的强弱顺序:

        泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

下面这张UML图,比较形象地展示了各种类图关系:

时间: 2024-12-14 07:17:38

UML关系类图的相关文章

20170908工作日记--UML画类图、HTTP协议、Volley源码走读

随手搜了一下,Android studio居然能够自动帮追我们生成UML的类图,简直太棒了http://www.gcssloop.com/course/UsePlantUMLInAS(Win),具体做法博客地址. 试了一下并不是根据Java文件自动生成的,而是需要自己写dot语法的相关代码,效果图如下,遂放弃 1.UML绘制类图 使用在线网站 https://www.processon.com/ 进行类图绘制.掌握基础绘制,如接口实现,继承关系等. 类之间的几种关系: 1.泛化--子类和父类的继

【UML】类图的几种关系总结

在UML类图中,常见的有以下几种关系:泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization) [泛化关系]:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种. [箭头指向]:带三角箭头的实线,箭头指向父类 2.实现(Realization) [实现关系]:是一种类与接口的关系,表示类

UML学习(类图和序列图等)

visio绘制UML图使用visio 提示此UML形状所在的绘图页不是UML模型图的一部分 请问这个问题怎么解决?新建->选择绘图类型->选择软件与数据库模板->选择UML模型图->注意:如果不选择UML模型图的话,可能会出现无法编辑形状文本,提示“此UML形状所在的绘图页不是UML模型图的一部分,该形状设计用于利用UML模型图模板创建的绘图”所以利用Visio绘UML图第一步就是选择绘图类型为软件中的UML模型图. 还可以参考百度云盘的UML学习资料 参考:UML中几种类间关系:

UML-类图,包图

UML构造设计模型 一.类图 二.包图 三.组件图 四.部署图 一.类图 1.类:类由三格表示:类名,类的属性,类的操作 类名: 首字母大学 类的属性:-name:String     可见性 属性名:类型  =默认值 可见性包含4种:  + public     -private   #protected  *package 类的操作: +getName():String      可见性  操作名(参数):返回值类型 2.类与类之间的关系. 四种:关联关系: 泛化关系: 依赖关系:实现关系

Uml学习-类图简介

类图(Class Diagram)简介  类图是面向对象分析(OOA,Object-Oriented Analysis)和面向对象设计(OOP,Object-Oriented Deisgn)思想的重要工具,是业务结构建模的重要工具. 需求中提到的各种业务概念,人物等,经过抽象后都可以视之为类.将某类东西归纳在一起,可以称为一个类,类有很多种提炼角度,需要根据系统的目标,业务的场景等,选取合适的角度对事物进行归纳. 类的识别: 1.  类的识别 将需求分析中遇到的人.物.概念识别为类,这是比较容易

UML建模类图

1.UML面向对象建模过程思路 first:通过需求分析,熟悉业务流程,可画出BPMN或者UML活动图 second:画出用例图 third:分析用例图找出确定的类以及相关类,以及参与者类:创建这些类的关联,画出初始类图:将有相同功能的类提取父类,形成继承或接口:类加关联多重性. -----上面三点是业务过程的类以及关联,另外更成软件系统还需要软件的界面,操作以及入口类---- forth:通过BPMN或者UML活动图,找出软件系统在实现过程中还需要的类以及关系,并完善类. 2.实践:某高校教务

EA UML 建模——类图

Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能,可以Google. 一.简单梳理C#中类与类.类与接口.接口与接口的关系 一.继承 (子类 : 父类.子接口 : 父接口) Is 子类 : 父类 abstract class Fruit{} class Apple : Fruit{} 子接口 : 父接口 interface IBase{} interface ISon : IBase{} 二.实现 (类 : 接口)

UML学习——类图(三)

1.类图 UML类图是用来描述类.接口.协作及它们之间的关系的图.用来显示系统中各个类的静态结构. 2.类图的组成元素 类图由以下六种元素组成:类,接口,泛化关系,关联关系,依赖关系,实现关系. 3.类图的绘制 3.1类图的表示法 类的UML表示为一个长方形垂直分为三个部分:顶部为类的名称部分,中间为类的属性部分,底部为类的方法部分.(下面两个区域是可选的) 类图属性和方法的命名:类型+名称(方法名/属性名)+默认值(可选)+返回值 如图 : 其中类型可有三种表示:-:private,+:pub

UML:类图复习-鸡生蛋,蛋生鸡

这是前一阵<高级软件工程>课堂上,老师随堂出的一道讨论题,随手贴在这里: ps: 今天是520,正好聊一些OoXx,关于爱的扯淡话题:) 题目:"鸡生蛋,蛋孵鸡",世间万物生生不息,如何用O-O中的类图以尽可能接近现实的方式来描述? 参考答案: 解析: 1.Chicken是基类,Hen(母鸡),Cock(公鸡)从Chicken派生, 2.Hen与Egg是关联关系,注意关联关系中的"重数"表示,从Hen向Egg的方向看去,0..*表示1只母鸡,可能下&qu