JAVA UML类图学习
最近在学习设计模式,文末会以类图的形式展示案例,还是比较懵逼的,写篇文章记录一下学习过程
一、 基本元素: 类
类的展示分为三个部分,分别为 【类名】,【属性】,【方法】
-
类名: 放在第一行
-
属性: 成员变量。展示形式: [可见性]属性名:类型[=默认值]
- 可见性: +(public)、- (private)、 #(protected)、~(friendly)
- 默认值:可省缺。
-
方法: 类中定义的方法。展示形式: [可见性]名称(参数列表)[:返回类型]
- 可见性同上
示例:
二、关联关系: 类图
在软件系统中,类不是孤立存在的,类与类之间存在各种关系。根据类与类之间的耦合度从弱到强排列,UML 中的类图有以下几种关系:依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。 摘自:知乎
1. 依赖关系
我所理解的依赖关系实际上两个本质上互不相干的对象,需要在通过另一个对象的某些方法完成自己的职责。比如常见的角色权限。角色和菜单互相独立,但角色需要通过菜单来完成权限控制
- 依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类 大概长这样 ------->
这个例子并不合适,但是可以大概说明,真实的情况是服务引用, 在某个方法中调用另一方法
2.关联关系
关联关系是指对象的引用关系,例如父亲和儿子。关联可以是单向或双向
- 关联关系的展示一般用实线展示,大概是张这个样子 —————>, 如果是双向的则不需要箭头,同时可以在线的两侧标注角色名,便于理解
3.聚合关系
就是一堆和个体的关系,比如公司和员工,公司嗝屁了员工还在,打工人在哪儿都可以打工
- 聚合关系用实现菱形表示 ——————◇
4.组合关系
组合关系是更强烈的聚合关系。 聚合关系中整体不存在了,个体还是存在的。 那么组合关系中整体不存在了,个体也将不复存在。实际使用中例如从表, 主表不存在了那么从表也将毫无意义
- 组合关系的展示方式 ———————◆
5.泛化关系
泛化关系映射到Java代码中指的是继承。例如 狗会继承动物的属性和方法,也可以实现自己的方法
- 泛化关系的表现为 ————————△
6.实现关系
这个就比较好理解了,就是interface的实现
- 实现关系的表现为 ----------△