UML类图语法介绍
UML类图语法介绍
- 一 官方定义
- 基本介绍
- UML 图分类
- 建模工具
- 二 六大关系
- 2.1 依赖关系
- 代码体现
- UML图示
- 2.2 泛化关系
- 代码体现
- UML图示
- 2.3 实现关系
- 代码体现
- UML图示
- 2.4 关联关系
- 代码体现
- UML图示
- 2.5 聚合关系
- 代码体现
- UML图示
- 2.6 组合关系
- 代码体现
- UML图示
一 官方定义
UML - Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,
用于帮助软件开发人员进行思考和记录思路的结果
基本介绍
UML图:通过不同的图形和符号,来描述软件模型以及各个元素之间的关系依赖关系
:一条虚线加箭头的形式泛化关系
:一条实线加三角箭头,箭头要指向父类实现关系
:一条虚线加三角箭头 箭头方向指向接口关联关系
:
单向关联: 一条实线加一个箭头
双向关联: 一条实线 (一条实线加两个箭头)
聚合关系
: 一条实线加上空心菱形来表示聚合关系组合关系
: 一条实线加上实心菱形来表示组合关系
UML 图分类
- 用例图(use case)
- 静态结构图:类图、对象图、包图、组件图、部署图
- 动态行为图:交互图(时序图与协作图)、状态图、活动图
UML类图:描述类之间的关系
建模工具
- word,利用word工具可以绘制简单的UML图,但是这是一种非专业的手段,而且绘制起来比较麻烦
- 利用VISIO工具进行UML图的绘制
- 利用PowerDesigner工具绘制UML图形,PowerDesigner支持标准数据建模UML
- IDEA中可以使用PlantUML插件来画类图,也可以下载安装UML Support插件 附录图
二 六大关系
2.1 依赖关系
是一种使用关系,一个类的实现,需要另一个类的协助,逻辑上 use a 表示
只要在类中使用到了对方,是依赖关系,是一种最基本的关系
其他的五种关系,都是依赖关系的特例
代码体现
- 类中使用到了对方
- 类的成员属性
- 方法的接受的参数类型
- 方法的返回值类型
方法内部使用到了
//案例演示 - 依赖关系的形式
public class PersonServiceBean {//类的成员属性
private PersonDao personDao;
//方法的接收参数类型
public void save(Person person) {
}
//方法的返回值类型
public IDCard getIDCard() {
return new IDCard();
}
//方法内部使用到
public void modify() {
//违反了迪米特法则 可以这样写,
Department department = new Department();
}
}
class PersonDao {
}
class IDCard {
}
class Person {
}
class Department {
}
UML图示
UML符号:一条虚线加箭头的形式
2.2 泛化关系
泛化关系指的就是继承关系 (语法)
代码体现
class PersonBean{
public void save(){
//TODO...
}
public void delete(){
//TODO...
}
}
public class PersonServiceBean extends PersonBean{
}
UML图示
UML符号:一条实线加三角箭头,箭头要指向父类
2.3 实现关系
实现关系实际上 A类实现了B接口,A,B存在实现关系 (语法层面)
代码体现
//案例演示 - 实现关系
interface PersonService{
void delete();
}
public class PersonServiceBean implements PersonService{
@Override
public void delete() {
System.out.println("true = " + true);
}
}
UML图示
UML符号:一条虚线加三角箭头 箭头方向指向接口
2.4 关联关系
关联关系体现的是业务逻辑上的关系
关联关系具有导航性:单向关联,双向关联 (代码层面上)
关联关系还具有多重性:一对一,一对多,多对多 (业务逻辑上)
代码体现
//单向一对一
class Person{
public IDCard idCard;
}
class IDCard{
//并没有使用到Person类
}
//双向一对一
class Person{
public IDCard idCard;
}
class IDCard{
public Person person;
}
UML图示
UML符号
单向关联 一条实线加一个箭头
双向关联 一条实线 (一条实线加两个箭头)
2.5 聚合关系
聚合关系,是关联关系的一个特例
具有导航性
具有多重性
聚合关系描述的是业务逻辑上整体和部分的关系
整体和部分如果可以分开就构成聚合关系,分不开就是组合关系
代码体现
//案例演示 - 聚合关系
public class Computer {
public Monitor monitor;
public Mouse mouse;
}
class Monitor{
}
class Mouse{
}
UML图示
UML符号:一条实线加上空心菱形来表示聚合关系
2.6 组合关系
聚合关系描述的是业务逻辑上整体和部分的关系
整体和部分如果可以分开就构成聚合关系,分不开就是组合关系
代码体现
业务逻辑上人和身份证是可以分开单独存在的,但是人和头是不可以分开的。
//案例演示 - 组合关系
class Person{
public IDCard idCard; //聚合关系
public Head head = new Head(); //组合关系
}
class IDCard{
}
class Head{
}
UML图示
UML符号:一条实线加上实心菱形来表示组合关系
还没有评论,来说两句吧...