软件设计师 · 高频练习

组合模式适合解决什么问题?

中级 单选题 第 117 题 中等 软件设计师设计模式组合模式树形结构
题目

某绘图软件中,单个图形和由多个图形组成的图形组都需要支持移动、缩放、绘制等操作。为了让客户端能够一致地处理单个对象和组合对象,较适合采用的设计模式是()。

A 组合模式
B 单例模式
C 观察者模式
D 策略模式
题目类型:原创高频考点题 用途:用于帮助理解软件设计师相关考点和答案解析,不等同于官方真题。
正确答案
A
答案解析

组合模式用于把对象组织成树形结构,使客户端可以用一致方式处理单个对象和组合对象。文件夹与文件、菜单与菜单项、图形与图形组,都是常见的组合模式场景。

选项分析

A

正确。组合模式适合处理树形整体-部分结构,并统一对待单个对象和组合对象。

B

错误。单例模式关注一个类只有一个实例。

C

错误。观察者模式关注对象状态变化时通知依赖对象。

D

错误。策略模式关注算法封装和运行时替换。

本题为什么容易错

很多同学看到“组合对象”会误以为只是普通对象组合。模式题里的组合模式更强调树形结构和统一接口。

先看结论

简短答案

组合模式适合解决什么问题,正确答案是 A(组合模式)。组合模式用于把对象组织成树形结构,使客户端可以用一致方式处理单个对象和组合对象。文件夹与文件、菜单与菜单项、图形与图形组,都是常见的组合模式场景。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
组合模式 本题正确答案 正确。组合模式适合处理树形整体-部分结构,并统一对待单个对象和组合对象。 看到题干核心场景时优先联想到它
单例模式 本题干扰项 错误。单例模式关注一个类只有一个实例。 看到该词不要急着选,先判断是否真正解决题干问题
观察者模式 本题干扰项 错误。观察者模式关注对象状态变化时通知依赖对象。 看到该词不要急着选,先判断是否真正解决题干问题
策略模式 本题干扰项 错误。策略模式关注算法封装和运行时替换。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 单例模式:错误。单例模式关注一个类只有一个实例。
  • 观察者模式:错误。观察者模式关注对象状态变化时通知依赖对象。
  • 策略模式:错误。策略模式关注算法封装和运行时替换。
复习

知识点详解

树形结构是软件设计师考试中需要结合场景理解的考点。围绕“组合模式适合解决什么问题”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“某绘图软件中,单个图形和由多个图形组成的图形组都需要支持移动、缩放、绘制等操作。为了让客户端能够一致地处理单个对象和组合对象,较适合采用的设计模式是()”,它指向的核心答案是 A(组合模式)。

备考速记

备考速记:题干如果强调“树形结构”中的关键目标,就先联想到 树形结构;如果选项里出现 单例模式、观察者模式、策略模式,不要只看名称熟悉,要判断它们是否真正对应题干场景。

树形结构在树形结构场景中的作用

树形结构在本题中的核心价值,是解决“某绘图软件中,单个图形和由多个图形组成的图形组都需要支持移动、缩放、绘制等操作。为了让客户端能够一致地处理单个对象和组合对象,较适合采用的设计模式是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出树形结构场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查树形结构的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把树形结构和单例模式、观察者模式、策略模式放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
树形结构在软件设计师软考中的考法

软考选择题通常不会只考概念定义,还会把树形结构放到树形结构场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。

解题思路

题干里有两个层次:单个图形是叶子对象,图形组是组合对象。客户端不想分别写两套处理逻辑,而是希望移动、缩放、绘制都能统一调用,这就是组合模式。

考点定位

组合模式的题眼是“整体-部分树形结构”和“一致处理叶子对象与容器对象”。看到文件目录、菜单、组织结构、图形组,要敏感。

易错提醒

  • 组合模式不是项目组合管理,也不是简单把几个类放在一起。
  • 叶子对象和组合对象通常实现相同接口。
  • 文件系统目录结构是组合模式的经典例子。

备考提示

  • 设计模式场景题先找对象关系:如果是树形整体-部分,并要求统一处理,优先考虑组合模式。
  • 组合模式和聚合/组合关系不是一回事,一个是设计模式,一个是 UML 类图关系。

你可能还想了解

  • 组合模式适合解决什么问题?
  • 树形结构是什么?
  • 树形结构在软件设计师考试中怎么考?
  • 软件设计师树形结构题怎么理解?
  • 组合模式适合解决什么问题怎么考?
  • 软件设计师组合模式怎么考?

本文小结

本题核心考点是树形结构在树形结构场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(组合模式)。