UML类图基本概念
【 概念 】
- UML- - -Unified modeling language UML(统一 建模语言)
- 是一种用于软件系统,分析和设计的语言工具
- UML本身是一套符号的规定,用于描述软件模型中的各个元素之间的关系
- 比如类、接口、实现、泛化、依赖、组合、聚合等
1. 依赖关系(Dependence)
【概念】
只要在类中用到了对方,那么他们之间就存在依赖关系。
【特点】
- 类中使用了对方
- 对方是类的成员变量
- 对方是方法的返回类型
- 对方是方法的接受参数
- 对方在方法中被使用到
1.1 泛化关系(generalization)
【概念】
泛化关系就是继承关系,是一种特殊的依赖关系
【特点】
- 泛化就是继承
- 只要类A继承了B类,就说明A和B之间存在泛化关系
1.2 实现关系(Implementation)
【概念】
实现关系实际上就是A类实现B类,是依赖关系的特例
2. 关联关系(Association)
【概念】
类与类之间的联系,他是依赖关系的特例
关联关系具有 导航性 :即具有双向关系或单向关系
单向关系:
Person类中
有IDCard类
IDCard类
中没有Person类
双向关系:
Person类中
有IDCard类
IDCard类
中也有Person类
2.1 聚合关系(Aggregation)
【概念】
- 表示整体和部分的关系
- *** 整体与部分可以分开**
- 聚合关系是关联关系的特例
- 具有导航性和多重性
【示例】
//如果我们主观意识上认为 鼠标和显示器与计算机是可拆分的 就可以使用聚合方式 class Computer{ //作为成员变量 private Mouse mouse; private Monitor monitor; //通过set方法传入成员变量 --> 可拆分为聚合 public void setMonitor(Monitor monitor) { this.monitor = monitor; } public void setMouse(Mouse mouse) { this.mouse = mouse; } } //鼠标 class Mouse{ String name; } //显示器 class Monitor{ String name; }
2.2 组合关系(Composition)
【概念】
- 整体和部分的关系
- 但是整体与部分不可以分开
【示例】
//如果我们主观意识上认为 鼠标和显示器与计算机是不可拆分的 就可以使用组合方式 class Computer{ //作为成员变量的同时 自己跟随Computer类进行创建销毁 private final Mouse mouse = new Mouse(); private final Monitor monitor = new Monitor(); } //鼠标 class Mouse{ String name; } //显示器 class Monitor{ String name; }
组合&聚合关系: