目录
1UML类图概念
统一建模语言(Unified Modeling Language,UML)可以帮助我们表示软件的结构:不同的模块、类和对象如何相互交互,以及它们之间的关系是什么。是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的结果
UML图:通过不同的图形和符号,来描述软件模型以及各个元素之间的关系
UML图分类:
- 用例图(use case)
- 静态结构图:类图、对象图、包图、组件图、部署图
- 动态行为图:交互图(时序图与协作图)、状态图、活动图
因为设计模式中一般使用的是UML类图,什么是UML类图:UML类图是描述类之间的关系
2UML类图画法
类属性或者操作的访问修改符的标注:
- public用加号标注
- private用减号标注
- protected用#号标注
类简要画法
- 第一格:类名称(如果是抽象类,名称标注为斜体字)
- 第二格:类属性名称
- 第三格:类操作名称(方法)
接口简要画法
- 第一格:接口名称(名称前面要加入接口标注<>)
- 第二格:操作名称
3使用visio画uml类图
本人使用的是visio2016版本
在新建环境联网搜索UML选择静态结构
左侧有很多功能的快捷方式
4使用idea查看UML类图(很方便)
选中想要查看类
右键
上方的工具选项可以查看类的关系,不在细说,自己试试就知道了
5类的六大关系及画法
5.1依赖关系
是一种使用关系,一个类的实现,需要另一个类的协助,逻辑上 use a表示在类中使用到了对方,依赖关系是一种最基本通用的关系
其他的五种关系都是依赖关系的特例
类实现关系的几种形式
-
类中使用到了对方
-
类的成员属性
-
方法的接受的参数类型
-
方法的返回值类型
-
方法内部使用到了
画法符号:一条虚线表示依赖关系
5.2泛化关系(继承关系)
泛化关系就是继承关系,称为Is-A关系,当一个类表示多个类的共享特征时,这称为泛化
UML画法符号:一条实线+三角箭头,剪头要指向父类
5.3 实现关系
类实现接口
UML画法符号:一条虚线+三角箭头,箭头方向指向接口
5.4关联关系
关联关系体现的是业务逻辑上的关系
关联关系具有导航型,可以单向关联,也可以双向关联(代码层面的)
关联关系还具有多重性:一对一,一对多,多对多
组合和聚合是两种关联关系
单向关联UML画法符号: 一条实线加一个箭头
双向关联UML画法符号: 一条实线 (一条实线加两个箭头)
5.5聚合关系
聚合关系,是关联关系的一个特例,聚合是一种特殊类型的关联。如果将继承看作Is-A关系,则可以将聚合视为Has-A关系。
聚合用于描述以下情况中两个或多个类之间的关系:一个类在逻辑上包含另一个类,但所包含的类的实例又可以独立于第一个类在其上下文之外生存,或者可以被其他的类所引用,描述的是业务逻辑上整体和部分的关系 整体和部分如果可以分开 就构成聚合关系。例如,部门与教师间存在Has-A关系,每位教师必须属于部门,但如果部门不再存在,教师仍然可以处于活动状态
UML符号画法:一条实线加上空心菱形来表示聚合关系
例如,部门(Department)与教师(Teacher)间存在Has-A关系,每位教师必须属于部门,但如果部门不再存在,教师仍然可以处于活动状态
5.6组合关系
一个类是另一个类的组成部分就称两者间存在组合关系。与聚合的区别是当主类不存在时,依赖类就不存在。
UML符号画法:一条实线加上实心菱形来表示组合关系
例如,房子(House)由房间(Room)组成,但如果房子被销毁,房间就不再存在,
开发环境中没必要关注两者是聚合还是组合