软件设计师 · 高频练习

策略模式适合解决什么设计问题?

中级 单选题 第 113 题 中等 软件设计师设计模式策略模式算法封装
题目

某电商系统需要根据普通会员、VIP 会员、节日活动等不同规则计算折扣。开发人员希望把不同折扣算法封装起来,并在运行时灵活替换。较适合采用的设计模式是()。

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

策略模式把一组可互换的算法分别封装成独立策略,使客户端可以在运行时选择或替换算法。折扣计算、支付方式、排序规则等场景,只要核心是“多种算法可替换”,就很适合策略模式。

选项分析

A

正确。策略模式适合封装一组可替换算法。

B

错误。单例模式关注一个类只有一个实例,不解决算法切换问题。

C

错误。备忘录模式用于保存和恢复对象状态。

D

错误。解释器模式用于解释特定语言或表达式,不是本题重点。

本题为什么容易错

这题容易被“电商系统”场景分散注意力。真正要看的不是业务领域,而是变化点:折扣算法经常变,且需要可替换。

先看结论

简短答案

策略模式适合解决什么设计问题,正确答案是 A(策略模式)。策略模式把一组可互换的算法分别封装成独立策略,使客户端可以在运行时选择或替换算法。折扣计算、支付方式、排序规则等场景,只要核心是“多种算法可替换”,就很适合策略模式。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
策略模式 本题正确答案 正确。策略模式适合封装一组可替换算法。 看到题干核心场景时优先联想到它
单例模式 本题干扰项 错误。单例模式关注一个类只有一个实例,不解决算法切换问题。 看到该词不要急着选,先判断是否真正解决题干问题
备忘录模式 本题干扰项 错误。备忘录模式用于保存和恢复对象状态。 看到该词不要急着选,先判断是否真正解决题干问题
解释器模式 本题干扰项 错误。解释器模式用于解释特定语言或表达式,不是本题重点。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 单例模式:错误。单例模式关注一个类只有一个实例,不解决算法切换问题。
  • 备忘录模式:错误。备忘录模式用于保存和恢复对象状态。
  • 解释器模式:错误。解释器模式用于解释特定语言或表达式,不是本题重点。
复习

知识点详解

算法封装是软件设计师考试中需要结合场景理解的考点。围绕“策略模式适合解决什么设计问题”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“某电商系统需要根据普通会员、VIP 会员、节日活动等不同规则计算折扣。开发人员希望把不同折扣算法封装起来,并在运行时灵活替换。较适合采用的设计模式是()”,它指向的核心答案是 A(策略模式)。

备考速记

备考速记:题干如果强调“算法封装”中的关键目标,就先联想到 算法封装;如果选项里出现 单例模式、备忘录模式、解释器模式,不要只看名称熟悉,要判断它们是否真正对应题干场景。

算法封装在算法封装场景中的作用

算法封装在本题中的核心价值,是解决“某电商系统需要根据普通会员、VIP 会员、节日活动等不同规则计算折扣。开发人员希望把不同折扣算法封装起来,并在运行时灵活替换。较适合采用的设计模式是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

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

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

解题思路

题干里说不同会员和活动有不同折扣规则,还希望运行时灵活替换。这里变化的是折扣算法本身,把算法封装成策略类,就能减少业务代码里堆一串条件判断。

考点定位

设计模式题不要只背名字,要抓意图。策略模式的题眼通常是:封装算法、算法族、运行时切换、避免大量 if-else 判断。

易错提醒

  • 策略模式不是为了创建唯一对象。
  • 如果题干强调算法族和可互换,优先考虑策略模式。
  • 策略模式可以减少复杂条件判断,但也会增加策略类数量。

备考提示

  • 设计模式题建议按“意图”记,不要按中文名字硬猜。
  • 看到折扣、排序、支付通道、压缩算法等可替换规则,可以联想到策略模式。

你可能还想了解

  • 策略模式适合解决什么设计问题?
  • 算法封装是什么?
  • 算法封装在软件设计师考试中怎么考?
  • 软件设计师算法封装题怎么理解?
  • 策略模式适合解决什么问题怎么考?
  • 软件设计师设计模式怎么考?

本文小结

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