10.6 面向对象技术章节概述
面向对象技术是软件设计师考试中的核心章节。课程把本章定位得很明确:内容集中、考点稳定、得分率相对高,上午题大约稳定在 11 分左右;下午题还会延伸到 UML 建模题和面向对象程序设计题。
本章要按三条主线复习:面向对象基础、UML、设计模式。
为什么面向对象是重点
面向对象开发具有较强复用性,适合复杂项目开发。它把系统看成对象之间的协作,而不是单纯的过程步骤,因此能更好支持抽象、封装、继承、多态和可扩展设计。
考试也正是围绕这些能力出题:
| 能力 | 对应考点 |
|---|---|
| 能否理解 OO 基本概念 | 类、对象、封装、继承、泛化、多态、动态绑定 |
| 能否读懂 OO 建模工具 | UML 图、UML 关系、图形细节 |
| 能否识别可复用设计方案 | 23 种设计模式的分类、意图、类图、场景 |
三大板块与分值
| 板块 | 上午题常见分值 | 核心任务 | 下午题联系 |
|---|---|---|---|
| 面向对象基础 | 约 2-4 分 | 概念定义、OOA/OOD、设计原则 | 面向对象程序设计理解基础 |
| UML | 约 3-4 分 | 图的概念、图形识别、关系识别 | 下午固定试题 3 UML 建模 |
| 设计模式 | 约 4 分 | 23 种模式名称、分类、意图、类图识别 | 下午试题 5/6 面向对象程序设计二选一 |
本章题目不像某些章节那样分散,基本都围绕这三块展开,所以复习收益很高。
主线一:面向对象基础
面向对象基础每次考试基本都会考,最常见是名词与描述匹配。
| 概念 | 复习要点 |
|---|---|
| 对象 | 属性、方法、对象标识,运行时实体 |
| 类 | 对象的抽象,描述一组对象的共同属性和行为 |
| 封装 | 隐藏内部实现,对外暴露接口 |
| 继承/泛化 | 子类复用父类特征,父类是子类的泛化 |
| 多态 | 同一消息在不同对象上产生不同行为 |
| 动态绑定 | 运行时根据实际对象确定调用方法 |
| OOA | 从问题域识别对象、类、关系 |
| OOD | 设计类职责、协作、接口和原则 |
面向对象设计原则也常出现,尤其要理解“为什么这样设计能降低耦合、提高复用”,不要只背原则名字。
主线二:UML
UML 是面向对象分析与设计的重要工具。上午题主要考图的识别、图的元素、图中的关系;下午题会进一步考“扣图填空”。
| UML复习层次 | 要掌握什么 |
|---|---|
| 基本概念 | UML 是统一建模语言,不是编程语言 |
| 关系 | 类图关系:关联、依赖、泛化、实现、聚合、组合;用例图关系:包含、扩展、泛化 |
| 图类型 | 类图、对象图、用例图、顺序图、通信图、活动图、状态图、构件图、部署图 |
| 图形细节 | 多重度、生命线、监护条件、并发分岔、状态迁移、供需接口、部署节点 |
图是 UML 的核心。做题时先识图,再识别图内元素,最后用关系方向和题干语义补空。
主线三:设计模式
设计模式考察非常集中,主要围绕 23 种 GoF 模式。
| 复习层次 | 要掌握什么 |
|---|---|
| 名称 | 中文名、英文名、常见拼写 |
| 分类 | 创建型 5、结构型 7、行为型 11 |
| 意图 | 每个模式解决什么问题 |
| 场景 | 题干关键词与模式匹配 |
| 类图 | 特殊类名、方法名、调用关系 |
课程强调:类图中出现的英文类名经常能帮助识别模式,例如 Builder、Director、State、Visitor、Command。如果类名没有提示,就回到应用场景和变化点判断。
上午题与下午题的联系
| 上午题知识 | 下午题用途 |
|---|---|
| UML 图和关系 | 下午 UML 建模题补类名、用例名、关系 |
| 类图多重度 | 判断对象图是否一致,或补关联数量 |
| 顺序图消息方向 | 推断方法属于哪个类 |
| 设计模式类图 | 面向对象程序设计题中补类名、方法名、接口调用 |
| 设计模式特殊方法 | clone()、buildPart()、execute()、accept()、visit() 等可能辅助代码填空 |
所以本章上午题不是孤立知识,它也是下午题的理论入口。
复习建议
- 基础概念先背边界:类/对象、重载/重写、泛化/实现、多态/动态绑定。
- UML 先会识图:看到物理节点选部署图,看到生命线选顺序图,看到小人椭圆选用例图。
- UML 关系重点练箭头方向:泛化指父类,实现指接口,include 指公共用例,extend 指基本用例。
- 设计模式先记 5-7-11,再记关键词,不要先硬背复杂类图。
- 做题时把上午选择题和下午案例题一起复盘,因为 UML 与设计模式会跨题型复用。
例题
描述类之间泛化、关联、组合等关系,常用:
第 10 章面向对象技术的三条复习主线是:
自查要点
- 本章为什么属于高收益章节?
- 面向对象基础、UML、设计模式分别怎样出题?
- 哪些 UML 和设计模式知识会延伸到下午题?
- 设计模式题为什么要先识别模式,再判断分类和意图?