软件设计师 · 高频练习

工厂方法模式和简单工厂有什么区别?

中级 单选题 第 172 题 中等 软件设计师工厂方法模式简单工厂设计模式
题目

某系统最初用一个静态工厂方法根据参数创建不同产品。后来产品类型不断增加,团队希望把创建逻辑延迟到具体工厂子类中,由不同工厂负责创建对应产品。后一种设计更接近()。

A 工厂方法模式
B 单例模式
C 桥接路由协议
D 数据库三范式
题目类型:原创高频考点题 用途:用于帮助理解软件设计师相关考点和答案解析,不等同于官方真题。
书木兰刷题练习 适合懒人、小白的刷题通关平台
正确答案
A
答案解析

简单工厂通常由一个工厂类根据条件创建不同产品,新增产品时可能需要修改工厂判断逻辑;工厂方法模式把产品创建延迟到具体工厂子类,每个具体工厂负责创建一种具体产品,更符合开闭原则。考试常用“新增产品是否需要改中心工厂判断”来考区别。

选项分析

A

正确。由具体工厂子类创建产品,是工厂方法模式的典型特征。

B

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

C

错误。桥接路由协议不是软件设计模式。

D

错误。数据库范式与对象创建模式无关。

本题为什么容易错

这题容易把简单工厂也当成正式设计模式来背,而忽略它和工厂方法的扩展方式差异。软设考试更关注对象创建责任的变化。

先看结论

简短答案

工厂方法模式和简单工厂有什么区别,正确答案是 A(工厂方法模式)。简单工厂通常由一个工厂类根据条件创建不同产品,新增产品时可能需要修改工厂判断逻辑;工厂方法模式把产品创建延迟到具体工厂子类,每个具体工厂负责创建一种具体产品,更符合开闭原则。考试常用“新增产品是否需要改中心工厂判断”来考区别。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
工厂方法模式 本题正确答案 正确。由具体工厂子类创建产品,是工厂方法模式的典型特征。 看到题干核心场景时优先联想到它
单例模式 本题干扰项 错误。单例模式关注一个类只有一个实例。 看到该词不要急着选,先判断是否真正解决题干问题
桥接路由协议 本题干扰项 错误。桥接路由协议不是软件设计模式。 看到该词不要急着选,先判断是否真正解决题干问题
数据库三范式 本题干扰项 错误。数据库范式与对象创建模式无关。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 单例模式:错误。单例模式关注一个类只有一个实例。
  • 桥接路由协议:错误。桥接路由协议不是软件设计模式。
  • 数据库三范式:错误。数据库范式与对象创建模式无关。
复习

知识点详解

设计模式是软件设计师考试中需要结合场景理解的考点。围绕“工厂方法模式和简单工厂有什么区别”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“某系统最初用一个静态工厂方法根据参数创建不同产品。后来产品类型不断增加,团队希望把创建逻辑延迟到具体工厂子类中,由不同工厂负责创建对应产品。后一种设计更接近()”,它指向的核心答案是 A(工厂方法模式)。

备考速记

备考速记:题干如果强调“设计模式”中的关键目标,就先联想到 设计模式;如果选项里出现 单例模式、桥接路由协议、数据库三范式,不要只看名称熟悉,要判断它们是否真正对应题干场景。

设计模式在设计模式场景中的作用

设计模式在本题中的核心价值,是解决“某系统最初用一个静态工厂方法根据参数创建不同产品。后来产品类型不断增加,团队希望把创建逻辑延迟到具体工厂子类中,由不同工厂负责创建对应产品。后一种设计更接近()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

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

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

解题思路

题干说“延迟到具体工厂子类中”,这几乎直接指向工厂方法模式。不要看到工厂两个字就停住,要继续看创建责任放在哪里:一个中心工厂,还是一组具体工厂。

考点定位

简单工厂集中判断,工厂方法由具体工厂子类创建产品。

易错提醒

  • 只看到工厂二字,不看具体创建责任。
  • 新增产品时仍不断修改中心工厂的 if-else。
  • 把工厂方法和抽象工厂混淆。

备考提示

  • 设计模式题先判断是创建型、结构型还是行为型。
  • 工厂方法关注一种产品族中的产品创建;抽象工厂关注一组相关产品族。

你可能还想了解

  • 工厂方法模式和简单工厂有什么区别?
  • 设计模式是什么?
  • 设计模式在软件设计师考试中怎么考?
  • 软件设计师设计模式题怎么理解?
  • 工厂方法模式和简单工厂区别怎么考?
  • 软件设计师设计模式怎么考?

本文小结

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