欢迎光临
我们一直在努力

UML与面向对象设计:核心概念与简答题整理(背诵版)

📌 本文参考侯爱民、欧阳骥、胡传福编著的《面向对象分析与设计(UML)(第2版·题库版)》课后习题与知识点,系统整理了面向对象方法、UML基础、用例图、类图、包与组件、设计模式等关键内容,以简答题形式呈现。所有笔记均来自课本知识梳理与课堂总结,适合期末复习与面试准备,希望能帮助大家快速掌握UML与面向对象设计的核心要点。


一、🔍 面向对象概述

1.1 结构化方法与面向对象方法的对比

📸笔记页:结构化vs面向对象

对比项

结构化方法

面向对象方法

核心

算法与步骤

对象与类

数据与操作

分离

封装一体

复用扩展性

差

强

适用系统

需求稳定型

需求多变的复杂系统

可视化建模

较弱

强(UML)

一句话总结:结构化方法重步骤,面向对象方法重实体,UML是面向对象建模的标准语言。

1.2 面向对象的六大基本概念

📐核心公式(Peter Coad & Edward Yourdon): 面向对象 = 对象 + 类 + 继承 + 消息通信

📸笔记页:面向对象六大基本概念

概念核心解释
对象 系统基本单位,由静态属性与动态行为构成
类 具有相同属性和行为的对象的抽象模板
封装 将属性与行为结合为独立单元,隐藏内部细节
继承 子类复用父类全部属性与行为
多态 同一消息被不同对象接收时产生不同响应(重载/覆盖)
消息通信 对象间通过发送含对象名、操作、参数的消息请求服务

关系辨析:

  • 对象 vs 类:类是抽象模具,对象是实例化铸件

  • 封装 vs 信息隐藏:信息隐藏是封装的核心内涵

1.3 面向对象设计的六大基本原则

📸笔记页:六大原则笔记

原则核心含义
开放封闭原则(OCP) 对扩展开放,对修改关闭
单一职责原则(SRP) 一个类只负责一项职责
依赖倒置原则(DIP) 依赖抽象,不依赖具体实现
里氏替换原则(LSP) 子类对象可替换父类对象
迪米特法则(LoD) 类只与直接朋友通信
接口隔离原则(ISP) 使用多个专用接口,避免臃肿接口

✅ 这六条原则是代码设计的“尺子”,写代码前先问问自己:当前设计是否违反了其中某一条?


二、📐 统一建模语言 UML 概述

2.1 UML 概念模型的三大组成部分

📸笔记页:UML架构图

一、基本构造块(UML的基础建模元素)

  • 事物(4类):

    • 结构事物:模型的静态名词(类、接口、用例、组件)

    • 行为事物:模型的动态动词(交互、状态机、活动)

    • 分组事物:模型的组织单元(核心为包)

    • 注释事物:模型的解释说明(核心为注解)

  • 关系(4种):

    • 依赖:表示使用关系

    • 关联:表示类与类的连接交互

    • 泛化:表示继承关系

    • 实现:表示类与接口的实现关系

  • 图(常用7种):

    • 用例图 → 描述系统功能需求

    • 类图 → 描述系统静态结构

    • 顺序图 → 描述对象交互时序

    • 协作图(通信图)→ 侧重对象连接结构与消息传递

    • 状态图 → 描述对象生命周期

    • 活动图 → 描述业务/操作流程

    • 部署图 → 描述系统物理部署结构

二、语义规则(规范UML元素的使用)

5个核心方面:名字、作用域、可见性、完整性、执行。保证模型的合法性与一致性。

三、公共机制(增强UML的灵活性与可扩展性)

4部分构成:规格说明、修饰、通用划分、扩展机制(构造型/标记值/约束)

2.2 UML 核心图对比(6种常用图)

图类型用途适用阶段
用例图 描述系统功能需求 需求分析
类图 描述系统静态结构 概要设计
顺序图 描述对象交互时序 详细设计
协作图 侧重对象连接与消息传递 详细设计
状态图 描述对象生命周期状态变化 详细设计
活动图 描述业务/操作流程 业务建模

三、📋用例图详解

3.1 用例的核心定义

简答:用例是从参与者视角描述的系统功能单元,核心是用例与参与者的交互行为,用于表达系统的功能需求,与具体实现无关。

3.2 用例描述的组成

简答:用例描述的核心组成包括:

  • 用例名

  • 参与者

  • 前置条件

  • 后置条件

  • 主事件流

  • 子事件流

3.3 用例图、用例模型、用例建模的关系

📸笔记页:用例笔记

概念定义
用例图 可视化表达,由参与者、用例、关系、系统边界组成
用例模型 用例图 + 用例描述,是系统功能需求的抽象模型
用例建模 创建用例模型的过程,用于梳理系统边界、明确功能需求

3.4 用例之间的三种关系

📸笔记页:用例笔记

关系定义特点
包含(include) 基本用例执行时,包含用例必定执行 必须执行,用于复用公共流程
扩展(extend) 为基本用例补充额外功能,受扩展点条件约束 可选执行,条件满足才触发
泛化(generalization) 子用例继承父用例,可覆盖父用例功能 一般-特殊继承关系,子用例可单独执行

核心区别:包含是“必定执行”,扩展是“可选执行”,泛化是“继承关系”。


四、🏛️类图与包/组件

4.1 类的属性描述

简答:UML中类的属性描述标准格式为:

text

[可见性] 属性名 [: 类型] [多重性] [=初始值] [(约束特性)]

核心成分:

  • 可见性:+(public)、#(protected)、-(private)

  • 属性名:标识属性的名称

  • 类型:属性的数据类型

  • 多重性:属性实例的数量范围

  • 初始值:属性的默认取值

  • 约束特性:附加规则说明(如只读)

示例:+ origin: Point(public可见性,属性名origin,类型Point)

4.2 类的操作描述

简答:UML中类的操作描述标准格式为:

text

[可见性] 操作名 [(参数列表)] [: 返回类型] [(约束特性)]

核心成分:

  • 可见性:控制操作的访问权限

  • 操作名:标识操作的名称

  • 参数列表:操作的输入参数(含类型)

  • 返回类型:操作执行后的返回值类型

  • 约束特性:附加规则说明(如异常)

示例:+ move()(public可见性,操作名move,无参数,无返回值)

📸笔记页:属性与操作格式笔记

4.3 包(Package)与组件(Component)

📸笔记页:包与组件对比笔记

简答:

对比维度包组件
定义 分组机制,聚拢关联模型元素 软件系统部署的基本单元
组成 类、接口、子包等 供给接口、需求接口、内部实现
作用 简化模型,划分逻辑模块 描述物理架构,独立部署替换
关系 依赖、泛化 依赖、实现、组装、泛化
层面 逻辑层面(开发阶段) 物理层面(部署阶段)

核心区别:包是逻辑层面的分组机制,组件是物理层面的部署单元。


五、⚙️设计模式简析(抽象工厂 & 访问者)

5.1 🏭抽象工厂模式(创建型)

简答:

四大角色:

  • 抽象工厂:声明一族产品的创建方法

  • 具体工厂:实现接口,生产同一产品族全部产品

  • 抽象产品:定义某类产品公共规范

  • 具体产品:产品具体实现,由对应具体工厂产出

  • 优点:保证同产品族产品配套,新增产品族遵循开闭原则 缺点:新增产品等级时,所有工厂类都要修改 适用场景:需要成套、一组相关联产品,存在多个产品族

    5.2 🧳访问者模式(行为型)

    简答:

    五大角色:

  • 抽象访问者:为每类元素定义访问方法

  • 具体访问者:实现各类元素的具体操作

  • 抽象元素:提供 accept() 方法接收访问者

  • 具体元素:实现 accept(),传入访问者

  • 对象结构:保存全部元素,遍历元素供访问

  • 优点:新增操作只需新增访问者,不用改动元素类;同类操作集中在访问者 缺点:新增元素种类困难,全部访问者都要补充方法 适用场景:元素结构固定,经常新增操作

    📸笔记页:抽象工厂&访问者笔记

    六、🎓心得体会(复习建议)

    通过整理这本教材的笔记,我有几点深刻体会:

  • 理解比死记更重要:UML的包含与扩展关系,光背定义不够,最好画几张用例图才能真正区分“必定执行”与“可选执行”。

  • 设计模式要结合类图学:只看文字很难体会访问者模式的“双重分派”机制,画一遍类图就明白了。

  • 六大原则是代码设计的“尺子”:每当设计一个类,想想它是否违背了单一职责、是否需要依赖抽象而非具体。

  • 包与组件不要混淆:记住“包是逻辑分组(开发时),组件是物理部署(运行时)”,这个区别面试经常问。

  • 建议你也动手画一画用例图、类图,用 StarUML 或 Draw.io 实践一下,效果会更好。期末考试前把这份简答题背熟,基本能覆盖 UML 与面向对象的核心考点。

    七、📚 参考文献

  • 侯爱民, 欧阳骥, 胡传福. 面向对象分析与设计(UML)(第2版·题库版)[M]. 北京: 清华大学出版社, 2021.

  • 本书是清华大学出版社“计算机系列教材”之一,2021年12月第2版。全书共524页,配套有完整的题库系统,含填空题142题、选择题214题、判断题110题、简答题123题、简单分析题66题,合计655题。本书系统介绍了面向对象技术的基本概念、方法和语言,全面介绍了UML的构成、视图、模型元素、图以及公共机制等核心知识,并重点介绍了UML各种图模型的建模技术与应用,同时涵盖了软件设计模式、Rational统一过程、数据建模等相关内容,适合计算机、软件工程专业学生使用。

  • 谭云杰. 大象——thinking in UML[M]. 2版. 北京: 中国水利水电出版社, 2012.

  • UML官方文档. OMG UML Specification[EB/OL]. About the Unified Modeling Language Specification Version 2.5.1

  • 课堂笔记及教师PPT课件

  • 如果本文对你有帮助,欢迎 点赞 👍 + 收藏 ⭐,你的支持是我持续分享的动力。今天在学院公众号看到一篇考研推广推文,好多熟悉的学姐,其中有一个学姐的观点给我带来一点启发,分享给大家,胜兵先胜而后求战,败兵先战而后求胜,行动是打破焦虑的最好方法。


    💾 资源下载:本文完整笔记的 Word 版(《UML与面向对象设计简答题整理(背诵版)》)已上传至 CSDN 资源,欢迎免费下载:点击下载。

    🔗下载链接:https://download.csdn.net/download/2601_95769388/92934725

    赞(0)
    未经允许不得转载:171主机测评 » UML与面向对象设计:核心概念与简答题整理(背诵版)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址