博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类图的6大关系详解
阅读量:5323 次
发布时间:2019-06-14

本文共 1482 字,大约阅读时间需要 4 分钟。

类图

以下类图使用  绘制,更多语法及使用请参考: 。

泛化关系 (Generalization)

用来描述继承关系,在 Java 中使用 extends 关键字。

@startumltitle Generalizationclass Vihicalclass Carclass TrunckVihical <|-- CarVihical <|-- Trunck@enduml

 

实现关系 (Realization)

用来实现一个接口,在 Java 中使用 implements 关键字。

@startumltitle Realizationinterface MoveBehaviorclass Flyclass RunMoveBehavior <|.. FlyMoveBehavior <|.. Run@enduml

 

聚合关系 (Aggregation)

表示整体由部分组成,但是整体和部分不是强依赖的,整体不存在了部分还是会存在。

@startumltitle Aggregationclass Computerclass Keyboardclass Mouseclass ScreenComputer o-- KeyboardComputer o-- MouseComputer o-- Screen@enduml

 

组合关系 (Composition)

和聚合不同,组合中整体和部分是强依赖的,整体不存在了部分也不存在了。比如公司和部门,公司没了部门就不存在了。但是公司和员工就属于聚合关系了,因为公司没了员工还在。

@startumltitle Compositionclass Companyclass DepartmentAclass DepartmentBCompany *-- DepartmentACompany *-- DepartmentB@enduml

 

关联关系 (Association)

表示不同类对象之间有关联,这是一种静态关系,与运行过程的状态无关,在最开始就可以确定。因此也可以用 1 对 1、多对 1、多对多这种关联关系来表示。比如学生和学校就是一种关联关系,一个学校可以有很多学生,但是一个学生只属于一个学校,因此这是一种多对一的关系,在运行开始之前就可以确定。

@startumltitle Associationclass Schoolclass StudentSchool "1" - "n" Student@enduml

 

依赖关系 (Dependency)

和关联关系不同的是,依赖关系是在运行过程中起作用的。A 类和 B 类是依赖关系主要有三种形式:

  • A 类是 B 类方法的局部变量;
  • A 类是 B 类方法当中的一个参数;
  • A 类向 B 类发送消息,从而影响 B 类发生变化。

@startumltitle Dependencyclass Vihicle {    move(MoveBehavior)}interface MoveBehavior {    move()}note "MoveBehavior.move()" as NVihicle ..> MoveBehaviorVihicle .. N@enduml

 

免费Java高级资料需要自己领取,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并发分布式等教程,一共30G。
传送门:

转载于:https://www.cnblogs.com/yuxiang1/p/10997924.html

你可能感兴趣的文章
zoj 1232 Adventure of Super Mario
查看>>
Oracle 序列的应用
查看>>
1201 网页基础--JavaScript(DOM)
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
oracle job
查看>>
Redis常用命令
查看>>
EFCode First 导航属性
查看>>
XML学习笔记(二)-- DTD格式规范
查看>>
I - Agri-Net - poj 1258
查看>>
git 的回退
查看>>
IOS开发学习笔记026-UITableView的使用
查看>>
Confluence配置数据库
查看>>
Java锁机制(一)synchronized
查看>>
002.文件删除功能
查看>>
[转载]电脑小绝技
查看>>
windos系统定时执行批处理文件(bat文件)
查看>>
06-redis主从
查看>>
linux下面桌面的安装
查看>>
thinkphp如何实现伪静态
查看>>
作业引擎quartz.net --- 监听链
查看>>