• UML 类图


    UML 是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分。UML主要使用图形符号来表示软件项目的设计,使用UML可以帮助项目团队沟通、探索潜在的设计和验证软件的架构设计。
    UML 的目标是提供一个标准的符号,可以被所有面向对象的方法使用,并选择和整合前兆符号的最佳元素。UML可用于广泛的应用程序,它为不同的系统和活动(如分布式系统,分析,系统设计和部署)提供​​了构造。

    在这里插入图片描述

    类图

    类图是一切面向对象方法的核心建模工具。该图描述了系统中对象的类型以及它们之间存在的各种静态关系。

    在UML类图中表示具体类

    具体类在类图中用矩形框表示,矩形框分为三层:第一层是类名字。第二层是类的成员变量;第三层是类的方法。成员变量以及方法前的访问修饰符用符号来表示:

    • “+”表示 public;
    • “-”表示 private;
    • “#”表示 protected;
    • 不带符号表示 default。

    属性的完整表示方式是: 可见性 名称 :类型 [ = 缺省值]
    方法的完整表示方式是: 可见性 名称(参数列表) [ : 返回类型]

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    类与类之间关系的表示方式

    有三种主要的关系:

    1. 关联 - 代表类型之间的关系(一个人为公司工作,一间公司有多个办事处)。
    2. 继承 - 专为将实例关系图 (ERD) 应用于面向对象设计而设的一种关系。它在面向对象设计中的继承概念互相呼应。
    3. 聚合 - 面向对象设计中的一种对象组合 的形式。
      在这里插入图片描述
      类和类、类和接口、接口和接口之间存在一定关系,UML类图中一般会有连线指明它们之间的关系。关系共有六种类型,分别是实现关系、泛化关系、关联关系、依赖关系、聚合关系、组合关系。
      在这里插入图片描述

    实现(Implement)关系

    实现关系是指接口及其实现类之间的关系。在UML类图中,实现关系用空心三角和虚线组成的箭头来表示,从实现类指向接口。
    在这里插入图片描述

    泛化(Generalization)关系

    关系是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性。
    在UML类图中,泛化关系用空心三角和实线组成的箭头表示,从子类指向父。
    在这里插入图片描述

    关联(Association)关系

    关联 - 代表类型之间的关系(一个人为公司工作,一间公司有多个办事处)。
    在UML图中,双向关联关系用带双箭头的实线或者无箭头的实线双线表示。单向关联用一个带箭头的实线表示,箭头指向被关联的对象。

    • 数字:精确的数量
    • *或者0..*:表示0到多个
    • 0..1:表示0或者1个,在Java中经常用一个空引用来实现
    • 1..*:表示1到多
      在这里插入图片描述

    依赖(Dependency)关系

    依赖(Dependency)关系是一种弱关联关系。如果对象A用到对象B,但是和B的关系不是太明显的时候,就可以把这种关系看作是依赖关系。
    在UML类图中,依赖关系用一个带虚线的箭头表示,由使用方指向被使用方,表示使用方对象持有被使用方对象的引用。
    在这里插入图片描述

    聚合(Aggregation)关系

    聚合(Aggregation)是关联关系的一种特例,它体现的是整体与部分的拥有关系,即 has a 的关系。
    在UML图中,聚合关系用空心菱形加实线箭头表示,空心菱形在整体一方,箭头指向部分一方。
    在这里插入图片描述

    组合(Composition)关系

    组合(Composition)也是关联关系的一种特例,它同样体现整体与部分间的包含关系,即 contains a 的关系。
    在UML图中,组合关系用实心菱形加实线箭头表示,实心菱形在整体一方,箭头指向部分一方。
    在这里插入图片描述

    https://www.visual-paradigm.com/cn/guide/uml-unified-modeling-language/what-is-uml/
    https://app.diagrams.net/
    https://www.zhihu.com/search?type=content&q=UML

  • 相关阅读:
    vs-debugger远程调试卡死解决
    SpringBoot 接口加密解密,新姿势!
    产品经理与项目经理的区别
    Splunk 之 filed 恢复
    NVIDIA Jetson TX2 安装ORB-SLAM3 ROS 错误总结
    HuggingFace 代码加速秘诀,专门用于针对解决numpy矩阵太大,程序中断的问题
    人工智能AI 全栈体系(七)
    openjudge_2.5基本算法之搜索_1789:算24
    面试问答-更新
    八个鲜为人知但很实用的Web API
  • 原文地址:https://blog.csdn.net/qq_63432403/article/details/134240104