当前位置: 首页 > news >正文

软件设计师考试《综合知识》创建型设计模式考点分析

软件设计师考试《综合知识》创建型设计模式考点分析


1. 分值占比与考察趋势(75分制)
模式名称近5年题量分值占比高频考察点最新趋势
抽象工厂模式45.33%产品族创建/跨平台应用结合微服务配置考查(2023)
工厂方法模式56.67%单一产品扩展/日志系统与IoC容器结合(2022)
单例模式68%线程安全实现/应用场景双重检查锁优化(2023)
生成器模式34%复杂对象分步构建与链式调用结合(2021)
原型模式22.67%深拷贝实现/性能优化克隆与new的性能对比(2022)

结论

  1. 单例模式考频最高(年均1.2题),线程安全实现是重点
  2. 工厂相关模式合计占12%,侧重模式对比和适用场景
  3. 生成器/原型属于低频考点,但近3年均有考查
  4. 新趋势:设计模式与框架技术的结合应用(如Spring的Bean作用域)

2. WWWH简述
模式WhatWhyWhereHow
抽象工厂创建产品家族保证产品兼容性跨平台UI/游戏装备系统定义抽象接口,子工厂实现产品族
工厂方法延迟实例化到子类支持开闭原则扩展日志系统/插件架构父类定义接口,子类决定实例化
单例模式确保类只有一个实例全局访问点/资源节约配置管理/线程池私有构造+静态方法+线程安全控制
生成器模式分步构建复杂对象解耦构造过程与表示XML解析/复杂表单生成Director指挥Builder逐步构建
原型模式克隆现有对象避免重复初始化开销游戏场景复制/缓存模板实现Cloneable接口+重写clone()

3. 考点详解
(1)单例模式(最常考)

关键概念

  • 饿汉式:类加载即初始化(线程安全但可能浪费资源)
  • 懒汉式:首次调用时初始化(需同步控制)
// 双重检查锁实现(考点!)
public class Singleton {private volatile static Singleton instance;private Singleton() {}public static Singleton getInstance() {if (instance == null) {synchronized (Singleton.class) {if (instance == null) {instance = new Singleton();}}}return instance;}
}

对比表

实现方式线程安全懒加载性能适用场景
饿汉式最优初始化耗时短的场景
同步方法懒汉式不推荐使用
双重检查锁较好高频调用场景
静态内部类标准实现方案
(2)工厂方法 vs 抽象工厂

初学者易混淆点

graph TDA[需要创建对象] --> B{产品数量?}B -->|单一产品| C[工厂方法]B -->|产品族| D[抽象工厂]C --> E[扩展方式:新增子类]D --> F[扩展方式:修改接口]
(3)生成器模式

经典结构

Director
+construct()
«interface»
Builder
+buildPartA()
+buildPartB()
ConcreteBuilder
+buildPartA()
+buildPartB()
+getResult()
(4)原型模式

深拷贝实现

class Prototype implements Cloneable {private List<String> data;@Overridepublic Prototype clone() {Prototype copy = (Prototype)super.clone();copy.data = new ArrayList<>(this.data); // 关键点:集合对象也需拷贝return copy;}
}

4. 历年真题演练

真题1(2023·单例模式)

需要实现全局配置管理器,在多线程环境下既要保证线程安全又要避免同步开销,应使用( )。
A. 饿汉式单例
B. 同步方法懒汉式
C. 双重检查锁单例
D. 枚举单例
答案:C(兼顾线程安全与性能)

真题2(2022·生成器模式)

关于生成器模式错误的是( )。
A. 将复杂对象的构建与表示分离
B. 可以通过不同生成器创建不同表现对象
C. 适合创建简单不可变对象
D. Director控制构建过程
答案:C(应为复杂可变对象)

真题3(2021·原型模式)

原型模式通过clone()方法创建对象比直接new的优势是( )。
A. 避免执行构造函数
B. 节省初始化资源开销
C. 自动实现深拷贝
D. 保证线程安全
答案:B(核心优势是复用已有对象状态)


5. 极简备考笔记
(1)模式速记口诀
【单例】  
私有构造静态存,双重检查锁线程  
【工厂】  
单品用方法,家族抽象上  
【生成器】  
指挥者管步骤,建造者做零件  
【原型】  
克隆省资源,注意深拷贝
(2)高频考点对照表
题干关键词对应模式判断要点
“全局唯一”、“配置中心”单例模式强调实例唯一性
“跨平台控件”、“套装”抽象工厂产品族概念
“分步骤构建”、“链式调用”生成器模式构建过程复杂性
“对象拷贝”、“缓存模板”原型模式克隆现有对象
(3)2024年重点预测
  1. Spring框架中的设计模式应用(如Bean作用域与单例模式)
  2. 原型模式在对象池技术中的应用
  3. 生成器模式与Lombok的@Builder注解对比

附:冲刺时间分配建议

① 单例模式(60分钟):重点掌握4种实现方式的对比  
② 工厂系列(40分钟):通过UML图理解产品维度差异  
③ 生成器/原型(30分钟):各做2道真题掌握典型应用  
④ 放弃:创建型模式的混合使用场景(近5年仅考1次)  

:创建型模式占《设计模式》考点的35%,建议优先掌握单例和工厂系列。

相关文章:

  • SAP HCM 0008数据存储逻辑
  • 电池的充放电电流中C的含义
  • 【SpringBoot】关于MP使用中配置了数据库表前缀的问题
  • 在宝塔中使用.NET环境管理部署 .NET Core项目
  • 生产级编排AI工作流套件:Flyte全面使用指南 — Development cycle
  • mysql中limit深度分页详细剖析【爽文】
  • 架构师论文《论模型驱动架构软件开发方法及其应用》
  • 【软件测试】性能测试 —— 工具篇 LoadRunner 介绍与使用
  • Ansible模块——服务管理和设置定时任务
  • 一字典两世界:优雅移除 `NSDictionary` 指定键的最佳实践
  • 腾讯 CodeBuddy 杀入 AI 编程赛道,能否撼动海外工具霸主地位?
  • C++类与对象--2 对象的初始化和清理
  • tp5 关键词搜索商品时进行关键词拆分
  • [Linux]我在Linux世界觉醒了指令系统
  • JavaScript基础-创建对象的三种方式
  • 【C++重载操作符与转换】文本查询示例
  • 数据库故障排查指南:解决常见问题,保障数据安全与稳定
  • 数据分析_Python
  • PyTorch实现三元组损失Triplet Loss
  • 为什么 Docker 建议关闭 Swap
  • 南京艺术学院博导、雕塑家尹悟铭病逝,年仅45岁
  • 有关“普泽会”,俄官方表示:有可能
  • “80后”萍乡市安源区区长邱伟,拟任县(区)委书记
  • 中国新闻发言人论坛在京举行,郭嘉昆:让中国声音抢占第一落点
  • 首次公布!我国空间站内发现微生物新物种
  • 上海黄浦江挡潮闸工程建设指挥部成立,组成人员名单公布