软件工程(八):UML类图的几种关系

依赖(Dependency)

  • 定义:一个类使用到了另一个类(例如作为参数、局部变量等)。
  • 表示虚线箭头,箭头指向被依赖的类。
  • 关键词usesdepends on
  • 示例:类 A 的某个方法使用类 B 作为参数或返回值。
css 复制代码
A -------▷ B
(虚线箭头)

关联(Association)

  • 定义:类与类之间的一种结构关系,表示一个类知道另一个类,通常以成员变量的形式存在。
  • 表示实线连接,可加上箭头表示导航方向。
  • 可选信息:多重性(1、0...1、*)、角色名、可见性。
  • 示例:学生类与班级类之间的关系。
css 复制代码
Student ──────── Class
         1           1..*

聚合(Aggregation)

  • 定义:一种特殊的关联,表示"整体-部分"关系,部分可以独立于整体存在。
  • 表示空心菱形指向整体。
  • 示例:班级聚合多个学生,学生可独立存在。
css 复制代码
Class ◇───────── Student

组合(Composition)

  • 定义:比聚合更强的"整体-部分"关系,部分不能独立存在,生命周期与整体相同。
  • 表示实心菱形指向整体。
  • 示例:人由心脏、肝脏等组成,器官不能脱离人体单独存在。
css 复制代码
Person ◆───────── Heart

继承 / 泛化(Generalization)

  • 定义:子类继承父类的属性和方法,是一种"is-a"关系。
  • 表示空心三角形箭头指向父类。
  • 示例:猫继承自动物。
css 复制代码
Cat ─────────▷ Animal
     (空心三角形)

实现(Realization)

  • 定义:类实现接口,是一种"can do"关系。
  • 表示虚线+空心三角形箭头指向接口。
  • 示例:类实现接口 Runnable。
css 复制代码
MyClass - - -▷ Runnable
(虚线+三角)

总结

关系 表示方式 含义/语义 典型示例
依赖 虚线箭头 临时使用 方法参数、返回值
关联 实线 拥有成员引用 学生与班级
聚合 空心菱形+实线 整体与部分,可独立存在 班级和学生
组合 实心菱形+实线 整体与部分,生命周期一致 人与器官
泛化 实线+空心三角箭头 继承,是一种"是"关系 动物与猫
实现 虚线+空心三角箭头 接口实现 Runnable 与 Thread 类
相关推荐
雾江流5 小时前
vidhub v1.3.13 |聚合主流网盘,自动刮削整理影视资源,有网盘会员的可入,或者使用不限速网盘
软件工程
数学小牛马17 小时前
现代软件工程课程 个人博客作业2-结对编程项目总结
软件工程·结对编程
云知谷1 天前
【经典书籍】C++ Primer 第19章特殊工具与技术精华讲解
c语言·开发语言·c++·软件工程·团队开发
0和1的舞者1 天前
《Git:从入门到精通(八)——企业级git开发相关内容》
大数据·开发语言·git·搜索引擎·全文检索·软件工程·初学者
雾江流2 天前
元萝卜 1.0.27| 免Root,XP模块框架,支持应用多开分身,一键微信平板模式
软件工程·1024程序员节
电子科技圈2 天前
芯科科技推出智能开发工具Simplicity Ecosystem软件开发套件开启物联网开发的新高度
mcu·物联网·设计模式·软件工程·软件构建·iot·1024程序员节
云知谷3 天前
【经典书籍】C++ Primer 第15章类虚函数与多态 “友元、异常和其他高级特性” 精华讲解
c语言·开发语言·c++·软件工程·团队开发
云知谷3 天前
【经典书籍】C++ Primer 第16章模板与泛型编程精华讲解
c语言·开发语言·c++·软件工程·团队开发
workflower3 天前
基本作业-管理⾃⼰的源代码
开发语言·单元测试·软件工程·需求分析·个人开发
云知谷3 天前
【经典书籍】《编写可读代码的艺术》精华
开发语言·c++·软件工程·团队开发