使用mermaid绘制类图关系

关联关系(association)

关联关系用一条直线表示

classG – classH

classG classH
  • 关联关系是一种静态关系,通常与运行状态无关。用来定义对象之间静态的、天然的结构。
  • 与依赖关系是不同的,依赖关系表达的是对象之间临时性的、动态的关系。
  • 在最终代码中,关联对象通常是以实例变量(成员变量)的形式实现的。
  • 具有多重性,常见为一对一关联,一对多关联,多对多关联等
  • 一般不强调关联的方向。当A——B时,A和B都知道对方的存在

依赖关系(dependency)

依赖关系用一条带箭头的虚线表示。

classK <… classL

classK classL

描述一个对象在运行期会使用到另一个对象的关系。

依赖关系是一种临时性的关系,随着运行场景的不同,依赖关系有可能发生变化
在最终的代码里,体现为类构造方法、类方法等的传入参数。
依赖关系除了知道对方外,还会使用对方的属性或方法
有单向依赖和双向依赖,双向依赖是一种非常不好的结构,应当单向依赖

实现关系(realize)

实现关系是用一条带空心箭头的虚线表示

classM <|… classN

classM classN

指的是一个class类实现interface接口(可以多实现),实现是类与接口之间最常见关系。在Java中此类关系通过关键字implements明确标识

继承关系(generalization)

继承关系是一条带空心箭头的直线表示

classA <|-- classB

classA classB

一个类(称为子类,子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能,继承是类与类或者接口与接口之间最常见得关系,一个类最多只能继承一个类

聚合关系(aggregation)

聚合关系是用一条带空心菱形箭头的直线表示

classE o-- classF

classE classF

表示实体对象关系,表达整体由部分构成的语义。
与组合关系不同的是,整体和部分不是强依赖的。即使整体不存在了,部分仍然存在。例如部门撤销以后,人员不会因此消失。

组合关系(composition)

组合关系用一条带实心菱形箭头的直线表示。在类图中表示整体拥有部分,如C拥有D。

classC *-- classD

classC classD

表示实体对象关系,表达整体拥有部分的语义。
组合关系是一种强依赖的特殊聚合关系。如果整体不存在了,则部分也将消亡

参考资料:
1、《大象——Thinking in UML(第二版)》
2、类图关系绘制方式

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值