当前位置: 首页 > 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%,建议优先掌握单例和工厂系列。

http://www.xdnf.cn/news/498169.html

相关文章:

  • NY309NY318美光科技颗粒NY319NY320
  • SVN 版本控制入门指南
  • 项目QT+ffmpeg+rtsp(二)——海康威视相机测试
  • 【学习心得】英伟达的诸多显卡性能对比
  • Scrapy进阶实践指南:从脚本运行到分布式爬取
  • 基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真
  • Linux面试题集合(3)
  • 二叉树进阶
  • c++重要知识点汇总(不定期更新)
  • flutter flutter run 运行项目卡在Running Gradle task ‘assembleDebug‘...
  • Linux基础开发工具二(gcc/g++,自动化构建makefile)
  • OpenCV级联分类器
  • gRPC开发指南:Visual Studio 2022 + Vcpkg + Windows全流程配置
  • ABP vNext 多租户开发实战指南
  • Uniapp开发鸿蒙应用时如何运行和调试项目
  • 中级统计师-统计学基础知识-第二章数据描述
  • 产品经理入门(2)产品体验报告
  • 深入解析SpringMVC:从入门到精通
  • uniapp自动构建pages.json的vite插件
  • 多商户商城系统源码解析:开发直播电商APP的技术底层实战详解
  • python线程相关讲解
  • uni-app 开发HarmonyOS的鸿蒙影视项目分享:从实战案例到开源后台
  • 显卡、Cuda和pytorch兼容问题
  • Rust 数据结构:HashMap
  • PostGIS实现栅格数据入库-raster2pgsql
  • 端口443在git bash向github推送时的步骤
  • 轻量、优雅、高扩展的事件驱动框架——Hibiscus-Signal
  • 【C++ Qt】布局管理器
  • redis的pipline使用结合线程池优化实战
  • Java大师成长计划之第25天:Spring生态与微服务架构之容错与断路器模式