设计模式——UML类图

目录

UML类图

介绍

  • uml(统一建模语言),是一种用于软件系统分析和设计的语言工具,他用于帮助软件开发人员进行思考和记录思路的结果
  • UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类,接口,实现,泛化,依赖,组合,聚合等

UML图

  • 话UML图和写文章差不多,多事把自己的思想描述给别人看,关键在于思路和条理,

UML图的分类

  • 用例图
  • 静态结构图:类图,对象图,包图,组件图,部署图
  • 动态行为图:交互图(时序图与协作图),转态图,活动图

说明:

  • 类图是描述类与类之间的关系的,是UML图中最核心的

关系

依赖关系

只要是在类中用到了对方,那么他们之间就存在依赖关系

  • 类中用到了对方
  • 如果是类的成员属性
  • 如果是方法的返回类型
  • 是方法接受的类型参数
  • 方法中使用到

泛化关系

  • 泛化关系实际上就是继承关系
  • 如果A继承了B,我们就说A和B存在泛化关系

实现关系

  • 实现关系实际上就是A类实现B类,他是依赖关系的特例

关联关系

聚合关系

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

如:一台电脑由键盘(keyboard),显示器(monitor),鼠标等组成,组成电脑的各个配件是可以从电脑上分离出来的,使用带空心的菱形的实线来表示

java 复制代码
package two.聚合关系;

/**
 * 聚合关系
 * @author Han
 * @data 2023/10/22
 * @apiNode
 */
public class Computer {
    // 显示器和鼠标可以和电脑分离
    //
    private Mouse mouse;
    private Monitor moniter;

    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }

    public void setMoniter(Monitor moniter) {
        this.moniter = moniter;
    }

}
  • 如果我们认为Mouse和Monitor和Computer是不可分离的,则升级为组合关系
java 复制代码
/**
 * 组合关系
 * @author Han
 * @data 2023/10/22
 * @apiNode
 */
public class Computer {
    // 显示器和鼠标无法和电脑分离
    private Mouse mouse = new Mouse();
    private Monitor monitor = new Monitor();

    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }

    public void setMonitor(Monitor monitor) {
        this.monitor = monitor;
    }

}
相关推荐
aloha_7896 分钟前
测试开发工程师面经准备(sxf)
java·python·leetcode·压力测试
我命由我1234529 分钟前
Java 并发编程 - Delay(Delayed 概述、Delayed 实现、Delayed 使用、Delay 缓存实现、Delayed 延迟获取数据实现)
java·开发语言·后端·缓存·java-ee·intellij-idea·intellij idea
北城以北888830 分钟前
SSM--MyBatis框架之缓存
java·缓存·intellij-idea·mybatis
kyle~35 分钟前
算法数学---差分数组(Difference Array)
java·开发语言·算法
曹朋羽41 分钟前
Spring EL 表达式
java·spring·el表达式
沐浴露z1 小时前
详解JDK21新特性【虚拟线程】
java·开发语言·jvm
一个不知名程序员www1 小时前
软考中级软件设计师(下午题)--- UML建模
软考·uml·软件设计师
No0d1es2 小时前
电子学会青少年软件编程(C/C++)1级等级考试真题试卷(2025年9月)
java·c语言·c++·青少年编程·电子学会·真题·一级
9号达人2 小时前
普通公司对账系统的现实困境与解决方案
java·后端·面试
超级苦力怕2 小时前
Java 为何 long a = 999999999 能过;long a = 9999999999 报错?一文讲透“宽化转换”
java