• UML-各种图


    什么是类图

    定义系统中的类,描述类的内部结构(属性、方法等),表示类之间的关系(泛化、实现、依赖、关联、聚合、组合)。

    UML表示类图

    在这里插入图片描述
    上图中左侧图形是一个常见的类图,

    • 类名:在顶端存放;
    • 属性部分:在中间存放,+ name: string => 可见性符号 属性名: 属性类型。
    • 方法部分:在底部存放,+ exam(int,double) => 可见性符号 方法名(参数列表): 返回值类型
      使用便签图形与虚线为类图添加注释

    可见性

    • “+”:表示公有 public
    • “-”:表示私有 private
    • “#”:受保护的 protected
    • “~”:包内公有 package

    属性语法

    [可见性]属性名[:类型][=初始值][{属性字符串}] => + name: String = "tom" {readOnly}
    中括号中描述的可有可无。


    方法语法

    [可见性]方法名[(参数列表)][:返回类型][{方法字符串}] => + calculateTotalPrice(quantity: int, pricePerUnit: double): double {static}
    中括号中描述的可有可无。


    泛化关系(继承关系)

    在这里插入图片描述
    一条带空心三角箭头的实线,从子类指向父类,或者子接口指向父接口


    实现关系

    在这里插入图片描述
    实现用一条带三角箭头的虚线表示,从类指向实现的几接口


    依赖关系

    • 定义:依赖关系表示一个类的方法使用另一个类的对象作为参数、局部变量或返回值,或者在方法中调用另一个类的方法。

    • 特点:依赖关系是一种较弱的关系,通常是临时性的。一个类的变化可能会影响到依赖它的类,但这种影响是间接的。

    • 表示:通常用虚线箭头表示。

    • 例子:学生和食堂,学生吃饭需要去食堂,食堂提供食物。


    关联关系

    • 定义:关联关系表示两个类之间存在某种关系,通常是通过成员变量来实现的。这种关系可以是单向的,也可以是双向的。

    • 特点:关联关系中的对象通常是独立存在的,它们的生命周期不相互依赖。一个对象的创建和销毁不会直接影响另一个对象。

    • 表示:通常用实线箭头表示。

    • 例子:一个 Teacher 类包含多个 Student 类的对象,表示教师和学生之间的关系。


    聚合关系

    • 定义:聚合关系是一种特殊的关联关系,表示整体与部分的关系,但部分可以独立于整体存在。

    • 特点:聚合关系强调的是整体与部分的关系,部分对象可以属于多个整体对象,或者可以独立存在* 。部分对象的生命周期可以独立于整体对象。

    • 表示:通常用空心菱形表示。

    • 例子: 一个 Department 类包含多个 Employee 类的对象,表示部门和员工之间的关系,员工可以独立于部门存在。


    组合关系

    • 定义:组合关系是一种强聚合关系,表示整体与部分之间的一种更强的关联。

    • 特点:组合关系表示整体与部分的关系,部分对象的生命周期完全依赖于整体对象。如果整体对象被销毁,部分对象也会被销毁。部分对象不能独立存在,也不能被多个整体对象共享。

    • 表示:通常用实心菱形表示。

    • 例子:一个 Car 类包含一个 Engine 类的对象,表示汽车和引擎之间的关系,引擎的生命周期完全依赖于汽车。


    关联关系和聚合关系的区别

    在面向对象编程中,关系的类型(如关联关系和聚合关系)通常是根据对象之间的语义和生命周期来区分的。具体到 Department 和 Employee 以及 Teacher 和 Student 的例子,我们可以从以下几个方面来理解它们之间的关系类型:

    Department 和 Employee
    聚合关系:

    • 整体与部分:Department 和 Employee 之间的关系可以被视为整体与部分的关系。一个 Department 包含多个 Employee,但 Employee 可以独立于 Department 存在。例如,一个 Employee 可以在多个 Department 之间转移,或者在没有 Department 的情况下继续存在。

    • 生命周期独立:Employee 的生命周期不依赖于 Department。即使 Department 被销毁,Employee 仍然可以存在。

    Teacher 和 Student
    关联关系:

    • 一般关系:Teacher 和 Student 之间的关系可以被视为一般的关联关系。一个 Teacher 可以教多个 Student,但这并不意味着 Student 是 Teacher 的一部分。Teacher 和 Student 是独立的实体,它们之间的关系是基于教学活动,而不是整体与部分的关系。

    • 生命周期独立:Teacher 和 Student 的生命周期是独立的。一个 Teacher 的创建和销毁不会直接影响 Student,反之亦然。

    总结

    • 聚合关系:强调整体与部分的关系,部分对象的生命周期可以独立于整体对象。例如,Department 和 Employee。

    • 关联关系:表示对象之间的一般关系,对象的生命周期独立。例如,Teacher 和 Student。

    在实际编程中,选择合适的关系类型取决于具体的业务需求和对象之间的语义关系。理解这些关系有助于更好地设计类之间的关系,确保程序的正确性和可维护性。

    总结

    • 依赖关系:较弱的关系,临时性,一个类的变化可能影响依赖它的类。

    • 关联关系:一般关系,对象独立存在,生命周期不相互依赖。

    • 聚合关系:整体与部分的关系,部分对象可以独立存在。

    • 组合关系:强聚合关系,部分对象的生命周期完全依赖于整体对象。

    什么是用例图

    什么是状态图

    什么是活动图

    什么是时序图

    什么是组件图

    什么是组件图

    什么是部署图

  • 相关阅读:
    1339_老电脑V480体验Linux系统
    class的基本用法
    alsa音频pcm设备之i2c调试
    Kotlin协程Channel浅析
    浮点型数字
    Sentinel浅层介绍(上)
    LabVIEW定义自定义错误代码在应用程序中使用
    QCC51XX---BLE广播
    laravel 自定义邮箱验证过期时间
    C++ 算数运算符 学习资料
  • 原文地址:https://blog.csdn.net/passworddddddd/article/details/140228476