UML图绘制 -- 类图

1.类图的画法

整体是个矩形,第一层类名,第二层属性,第三层方法。

    • :public
    • : private
  • : protected

  • 空格: 默认的default

对应的类写法。

java 复制代码
public class Student {
    public String name;
    public Integer age;
    protected Integer cardId;
    Integer mark;


    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

抽象类

对比类,就是第1层类名第3层 方法名斜体表示。

接口

顶层多了<<interface>>字段,其余好像没啥区别了。

里面就是对应包的名字。

对应java写法。

java 复制代码
package com.zgxt.demo.domain;

public class Student {
  
}

2.类图的关系

如果说,类图为了表现java中的类、接口等属性方法,那么类图的关系就代表java中中类、接口之间的关系。

泛化关系

泛化就是Java中的继承

表示图形:实线 + 空心三角

对应的类关系图。

实现关系

实现就是java中的实现。

表示图形:虚线 + 空心三角

依赖关系

如果一个类失去一个类代码无法编译,那么说这个类依赖于这个类。

具体表现为:成员变量、局部变量、方法形参,方法返回值

表示图形:虚线箭头

对应的类关系。

java 复制代码
// 小孩
class Child{
    private Hand hand; // 依赖关系:成员变量也成为关联

    public void riding(Foot foot){ // 方法形参
        Bike bike = new Bike(hand,foot); // 局部变量
    }
}

关联关系

2个类依赖关系,并且是依赖中的成员变量,则存在关联关系。

而且再细分,感觉跟MySQL中的外键约束,表设计有异曲同工之妙。

MySQL FOREIGN KEY 外键约束 (w3schools.cn)

表示图形:实线箭头、横线箭头。

单向关联

双向关联

聚合

是在依赖的及基础上(成员变量),但是和关联表现的层级不同,关联表示同层级之间,而聚合表示整体和部分层级之间。

另外: 整体和部分之间可以相互独立存在。

如: 一个公司由老板和员工组成。那么公司和员工关系就是聚合。而老板和员工的关系就是关联。

表示图形:空心菱形 + 箭头。

代码:一个Computer类需要Boss类和Employee类,聚合。

而Employee类中的businessTrip[出差]() 方法需要Boss的同意,这就是关联。

java 复制代码
// 聚合和关联
class Computer{
    private Boss boss; // 聚合
    private Employee employee; // 聚合
}

class Boss{

}

class Employee{
    private Boss boss; // 关联
    public boolean businessTrip(){
        // boss同意 return true
        // boss不同意 return false
    }
}

对应的图形

组合

区别与聚合,组合的整体和部分之间不能独立存在。

如: 人由手、脚、头等身体部位组成,但是手离开人、人离开手都不能做相应的方法。

表示图形: 实心菱形 + 实线箭头。

这个我就不画了。

相关推荐
奋斗的小方15 小时前
01 一文读懂UML类图:核心概念与关系详解
java·uml
钝挫力PROGRAMER1 天前
UML构造块中的关系梳理
软件工程·uml
未来之窗软件服务1 天前
计算机等级考试—UML 核心图分类与图标对照表—东方仙盟练气期
uml·计算机软考·仙盟创梦ide·东方仙盟
rolt5 天前
质量需求当成愿景、伪创新的基本盘《软件方法》第2章
产品经理·uml·软件方法
rolt12 天前
利用AI识别损毁程度是愿景吗《软件方法》第2章
产品经理·需求分析·uml
rolt12 天前
[pdf]《软件方法》全流程引领AI-电子书共435页202601更新
产品经理·ddd·架构师·uml·领域驱动设计
:mnong13 天前
跟着《软件需求分析和设计实践指南》成长
学习·需求分析·uml·软件需求
JaredYe14 天前
node-plantuml-2:革命性的纯Node.js PlantUML渲染器,告别Java依赖!
java·开发语言·node.js·uml·plantuml·jre
LDtPLYZgoAu15 天前
在LABVIEW中调用Bartender API子程序:探索自动化标签打印新旅程
uml
Warren2Lynch16 天前
利用 AI 协作优化软件更新逻辑:构建清晰的 UML 顺序图指南
人工智能·uml