前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软考高级: UML 依赖、关联、泛化、聚合概念和例题

软考高级: UML 依赖、关联、泛化、聚合概念和例题

作者头像
明明如月学长
发布2024-05-24 15:55:38
930
发布2024-05-24 15:55:38
举报

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。

一、AI 解读

1.1 解读

依赖、关联(包括组合和聚合)、泛化和实现是面向对象设计中用于描述类与类之间关系的术语。它们在UML(统一建模语言)中被广泛使用,以帮助设计和理解系统的结构和行为。下面是这些概念的简要讲解以及它们之间的区别:

1. 依赖(Dependency)

依赖表示一个类依赖于另一个类的情况。如果一个类的变化会影响到另一个类,则可以说这两个类之间存在依赖关系。依赖通常是使用类方法中的局部变量、方法的参数或者静态方法的调用来表示的。

2. 关联(Association)

关联是两个类之间的语义连接,表示一类对象与另一类对象之间有联系。关联可以是双向的,也可以是单向的。关联有两种特殊形式:聚合和组合。

  • 聚合(Aggregation):是一种弱关联,表示“整体和部分”的关系,但部分可以脱离整体单独存在。例如,一个班级和学生的关系。
  • 组合(Composition):是一种强关联,表示“整体和部分”的关系,但部分不能脱离整体存在。例如,一个人和他的心脏的关系。
3. 泛化(Generalization)

泛化是一种表示类与类之间的继承关系的方法。它用于表示一般与特殊的关系,其中一个更通用的类(父类)派生出一个或多个更特殊的类(子类)。泛化关系中的类具有“是一个”(is-a)的关系。

4. 实现(Implementation)

实现关系用于表示类与接口之间的关系。当一个类实现一个接口时,它必须实现接口中定义的所有方法。实现关系表示类是按照接口定义的协议进行实现的。

1.2 对比

类型

描述

符号

例子

依赖

一个类的改变影响另一个类

点线箭头

类A使用类B的方法

关联

两个类以某种方式相关联

实线箭头

学生和班级

聚合

整体与部分的关系,部分可以独立于整体

空心菱形加实线箭头

班级和学生

组合

整体与部分的关系,部分不能独立于整体

实心菱形加实线箭头

人和心脏

泛化

表示类与类之间的继承关系

实线空心箭头

车辆类继承于交通工具类

实现

表示类与接口之间的关系,类必须实现接口中定义的所有方法

虚线空心箭头

一个类实现一个接口

1.3 图形

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

二、 AI 出题

  1. 当一个类A中使用了另一个类B的对象作为自己的一个方法的参数时,这表示A和B之间存在什么关系? A. 聚合 B. 依赖 C. 组合 D. 泛化
  2. 下列哪个场景最适合使用组合(Composition)关系来表示? A. 一所学校和它的学生 B. 一本书和它的页面 C. 一个公司和它的员工 D. 一个国家和它的城市
  3. 接口和实现类之间是通过什么UML关系来表示的? A. 聚合 B. 组合 C. 泛化 D. 实现
  4. 如果类A可以存在于没有类B的情况下,但在某种功能上需要类B,那么A和B之间是什么关系? A. 聚合 B. 组合 C. 依赖 D. 实现
  5. “是一个”(is-a)关系在UML中通常用来表示哪种关系? A. 关联 B. 聚合 C. 泛化 D. 实现
  6. 下列哪个场景最适合使用泛化(Generalization)关系来表示? A. 手机类和电脑类 B. 动物类和猫类 C. 学生类和教师类 D. 汽车类和轮胎类
答案解析
  1. 答案: B. 依赖
    • 解析:当类A在其方法中使用类B的对象作为参数,表明A依赖于B进行某些操作。
  2. 答案: B. 一本书和它的页面
    • 解析:页面不能脱离书存在,这是一个典型的组合关系例子。
  3. 答案: D. 实现
    • 解析:接口和实现类之间的关系是通过实现关系来表示的,类必须实现接口中定义的所有方法。
  4. 答案: C. 依赖
    • 解析:如果A可以独立于B存在,但在某些功能上需要B,那么这是依赖关系。
  5. 答案: C. 泛化
    • 解析:“是一个”(is-a)关系用来表示继承关系,即泛化关系。
  6. 答案: B. 动物类和猫类
    • 解析:猫是动物的一个特殊类别,这是一个典型的泛化关系例子。

三、真题

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、AI 解读
    • 1.1 解读
      • 1. 依赖(Dependency)
      • 2. 关联(Association)
      • 3. 泛化(Generalization)
      • 4. 实现(Implementation)
    • 1.2 对比
      • 1.3 图形
        • 答案解析
    • 二、 AI 出题
    • 三、真题
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档