几种UML关系

无论何种编程语言 c,java。。 uml模型经常伴随我们在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】:带三角箭头的实线,箭头指向父类 2.实现(Realization)【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现【箭头指向】:带三角箭头的虚线,箭头指向接口 3.关联(Association)【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。【代码体现】:成员变量【箭头及指向】:带普通箭头的实心线,指向被拥有者 上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 图为自身关联:4. 聚合(Aggregation)【聚合关系】:是整体与部分的关系.如车和轮胎是整体和部分的关系.聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。【代码体现】:成员变量【箭头及指向】:带空心菱形的实心线,菱形指向整体 5. 组合(Composition)【组合关系】:是整体与部分的关系.,没有公司就不存在部门 组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期【代码体现】:成员变量【箭头及指向】:带实心菱形的实线,菱形指向整体 6. 依赖(Dependency)【依赖关系】:是一种使用的关系,所以要尽量不使用双向的互相依赖。【代码表现】:局部变量、方法的参数或者对静态方法的调用【箭头及指向】:带箭头的虚线,指向被使用者 各种关系的强弱顺序:泛化= 实现> 组合> 聚合> 关联> 依赖下面这张UML图,比较形象地展示了各种类图关系:
### UML用例中的四种主要关系 #### 1. 关联关系 关联关系表示参与者与用例之间或者不同用例之间的交互连接。这种关系表明某个参与者参与了特定的用例,或者是两个用例间存在某种形式的合作或依赖[^3]。 #### 2. 包含关系 包含关系是一种强制性的组合方式,在此情况下,基本用例会无条件调用另一个被称为“被包含”的用例。这意味着每当执行该基本用例时,“被包含”部分总是会被触发并完成其定义的功能。在形上表现为一条带有箭头的实线加上《include》标签,箭头方向指向被包含的用例[^2]。 ```mermaid graph TD; A[基础用例] -->|<<include>>| B(被包含用例); ``` #### 3. 扩展关系 扩展关系允许在一个已有基础上增加额外的行为逻辑而不改变原有结构。具体来说,如果某些条件下发生,则可以从外部引入一个新的用例来补充现有流程;反之则不会影响原过程正常运行。为了区分于其他型的链接,在绘时表示为带箭头的虚线加《extend》标记,并且箭头应指向作为目标的基础用例而非发起方即扩展者。 ```mermaid graph TD; C[基础用例] -.->|<<extend>>| D{扩展用例}; ``` #### 4. 泛化关系 泛化指的是特殊化的过程——更具体的子继承自更为通用的父特性的同时还可以添加自己独有的属性和方法。对于用例而言,这意呸着一个特殊的用例可以继承一般性用例的所有特征,并在此之上进一步细化或修改。在表里通常画成从特化的用例指向更加普遍的那个实体的一条直线,末端附有三角形符号代表继承的概念[^1]。 ```mermaid graph TD; E[派生/特殊用例] -->|<<generalization>>| F[基/通用用例]; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值