目录
1、UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的结果。
2、UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和它们之间的关系,如类、接口、实现、泛化、依赖、组合、聚合等。
1、用例图
2、静态结构图:类图、对象图、包图、组件图、部署图。
3、动态行为图:交互图(时序图与协作图)、状态图、活动图。
类图:描述类与类之间的关系,是UML图的核心。
1、用于描述类(对象)本身的组成和类(对象)之间的各种静态关系。
2、类之间的关系:依赖、泛化(继承)、实现、关联、聚合、组合。
类图示例代码:
- public class Person {
- private Integer id;
- private String name;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- }
对应的UML图:

只要在类中用到对方,它们之间就会存在依赖关系。
![]()
示例代码:
- public class PersonServiceBean {
- private PersonDao personDao;
- public void save(Person person) {
- }
- public IDCard getIDCard(Integer personid){
- return null;
- }
- public void modify(){
- Department department = new Department();
- }
- }
- public class IDCard {
- }
- public class Department {
- }
- public class Person {
- }
- public class PersonDao {
- }
对应的UML类图:

构成依赖关系总结:
1、类中用到对方。2、如果是类的成员属性。3、如果是方法的返回类型。 4、是方法接收的参数类型。 5、方法中使用到。
泛化关系就是继承关系,是依赖关系的特例。
![]()
示例代码:
- public abstract class DaoSupport {
- public void save(Object entity){
- }
- public void delete(Object id){
- }
- }
- public class PersonServiceBean extends DaoSupport {
- }
UML类图:

实现关系就是一个接口被一个类实现了,是依赖关系的特例。
![]()
示例代码:
- public interface PersonService {
- public void delete(Integer id);
- }
- public class PersonServiceBean implements PersonService {
- @Override
- public void delete(Integer id) {
-
- }
- }
UML类图:


1、关联关系等同于类与类之间的联系,是依赖关系的特例。
2、关联具有导航性:就是双向关系和单向关系。
3、关联具有多重性
单向一对一关系:
代码示例:
- public class IDCard {
- }
- public class Person {
- private IDCard idCard;
- }
UML类图:

双向一对一关系:
- public class IDCard {
- private Person person;
- }
- public class Person {
- private IDCard idCard;
- }

聚合关系表示整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,同样具有导航性和多重性。

- public class Computer {
- private Mouse mouse;
- private Moniter moniter;
-
- public void setMouse(Mouse mouse) {
- this.mouse = mouse;
- }
-
- public void setMoniter(Moniter moniter) {
- this.moniter = moniter;
- }
- }
- public class Moniter {
- }
- public class Mouse {
- }
整体与部分的关系,但是整体与部分不可以分开。
- public class Computer {
- private Mouse mouse = new Mouse();
- private Moniter moniter = new Moniter();
-
- public void setMouse(Mouse mouse) {
- this.mouse = mouse;
- }
-
- public void setMoniter(Moniter moniter) {
- this.moniter = moniter;
- }
- }