架构师备考-设计模式23种及其记忆特点
引言
以下是一篇关于架构师备考中设计模式23种的博文架构及记忆技巧总结,内容清晰、结构系统,适合快速掌握核心知识点。 考试类型是给语句描述或者类图,判断是哪一种设计模式(会出现英文的名词),2024年的两场考试选择题都考到了设计模式,2~4分。
架构师备考:23种设计模式分类、特点与高效记忆法
一、设计模式总览
三大分类 | 核心目标 | 模式数量 | 记忆口诀 |
---|---|---|---|
创建型(5种) | 对象创建解耦 | 工厂方法、抽象工厂、建造者、原型、单例 | 单抽元件厂 |
结构型(7种) | 类与对象组合 | 适配器、桥接、组合、装饰器、外观、享元、代理 | 外侨组员戴配饰 |
行为型(11种) | 对象交互与职责分配 | 责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者 | 观摩迭策,责令解放,戒忘台 |
二、分类详解与记忆技巧
1. 创建型模式(5种)
模式名称 | 核心思想 | 典型场景 | 记忆口诀 |
---|---|---|---|
工厂方法Factory | 延迟子类决定对象类型 | 多种数据库连接器 | “子类选产品” |
抽象工厂Abstract Factory | 创建产品族 | 跨平台UI组件库 | “全家桶打包” |
建造者Builder | 分步构建复杂对象 | 定制电脑配置 | “搭积木,分步骤” |
原型Prototype | 克隆现有对象 | 游戏角色复制 | “复制粘贴” |
单例Singleton | 全局唯一访问点 | 配置管理器、日志处理器 | “独一份,锁保险” |
记忆技巧:
- 关联场景:想象开一家工厂(工厂方法)、生产全套家电(抽象工厂)、组装汽车(建造者)、克隆羊多莉(原型)、总统唯一(单例)。
- 对比区分:
- 工厂方法 vs 抽象工厂:前者单产品,后者产品族。
2. 结构型模式(7种)
模式名称 | 核心思想 | 典型场景 | 记忆口诀 |
---|---|---|---|
适配器Adapter | 接口转换兼容 | 旧系统对接新API | “转接头” |
桥接Bridge | 抽象与实现分离 | 跨平台图形渲染 | “搭桥解耦” |
组合Composite | 树形结构统一处理 | 文件系统目录管理 | “整体=部分之和” |
装饰器Decorator | 动态添加功能 | Java I/O流嵌套 | “俄罗斯套娃” |
外观Facade | 简化复杂子系统接口 | 一键启动智能家居 | “总开关” |
享元Flyweight | 共享细粒度对象 | 字符重复渲染优化 | “资源共享池” |
代理Proxy | 控制对象访问 | 远程服务调用、权限检查 | “中介代劳” |
记忆技巧:
- 形象类比:
- 适配器(转接头)、桥接(连接两岸)、组合(文件夹嵌套)、装饰器(洋葱包装)、外观(统一入口)、享元(重复利用)、代理(经纪人)。
- 考试重点:适配器(结构转换) vs 装饰器(功能增强)。
3. 行为型模式(11种)
模式名称 | 核心思想 | 典型场景 | 记忆口诀 |
---|---|---|---|
责任链Chain of Responsibility | 请求传递链 | 审批流程分级处理 | “击鼓传花” |
命令Command | 封装请求为对象 | 撤销/重做功能 | “存折单据” |
解释器Interpreter | 定义语法解释 | SQL解析、正则表达式 | “翻译官” |
迭代器Iterator | 统一遍历接口 | 集合类遍历 | “遥控器翻页” |
中介者Mediator | 集中对象交互 | 聊天室消息转发 | “路由器” |
备忘录Memento | 保存与恢复对象状态 | 游戏存档 | “时光机” |
观察者Observer | 订阅-通知机制 | 事件监听(如按钮点击) | “广播通知” |
状态State | 状态改变行为 | 订单状态流转 | “变脸” |
策略Strategy | 算法族互换 | 支付方式选择 | “可插拔” |
模板方法Template Method | 定义算法骨架 | 工作流标准化 | “填空题” |
访问者Visitor | 解耦数据结构与操作 | 报表生成器遍历不同元素 | “游客参观” |
记忆技巧:
- 场景串联:
- 处理审批流程(责任链)→ 用户点击按钮(观察者)→ 执行撤销命令(命令)→ 恢复存档(备忘录)→ 切换支付策略(策略)。
- 高频考点:
- 观察者 vs 发布订阅(后者更解耦)
- 状态模式 vs 策略模式(前者状态驱动行为,后者算法替换)
三、高效记忆方法论
1. 分类记忆法
- 创建型:聚焦“怎么生”
- 结构型:解决“怎么搭”
- 行为型:管理“怎么动”
2. 口诀总结
- 创建型5种:
“单例独一份,工厂造产品,抽象全家桶,建造分步骤,原型靠克隆” - 结构型7种:
“适配转接口,桥接连两岸,组合成树形,装饰加功能,外观简入口,享元省资源,代理代访问” - 行为型11种:
“责任传链条,命令封请求,解释定语法,迭代遍集合,中介管交互,备忘存状态,观察发通知,状态变行为,策略换算法,模板定骨架,访问解操作”
3. 对比记忆法
对比组 | 核心区别 |
---|---|
工厂方法 vs 抽象工厂 | 单产品 vs 产品族 |
适配器 vs 装饰器 | 接口转换 vs 功能增强 |
观察者 vs 发布订阅 | 直接耦合 vs 通过中间通道 |
状态模式 vs 策略模式 | 状态驱动行为变化 vs 算法灵活替换 |
四、备考实战建议
-
画UML图:对每个模式绘类图(重点角色:Client、Product、Factory等)。
23种常用设计模式的UML类图 -
场景映射:为每个模式联想一个现实案例(如单例→总统)。
-
刷题巩固:重点练习模式识别题(如给出代码判断模式)。
-
错题整理:记录混淆点(如常分不清桥接和适配器)。
*附:设计模式总图
掌握设计模式的核心在于理解其解决问题的场景而非死记硬背。结合上述方法,在备考中可快速定位模式特征,轻松应对架构师考试中的设计模式考题!