Skip to content

Commit 785cc7e

Browse files
committed
chore: update
1 parent 202f7d6 commit 785cc7e

6 files changed

Lines changed: 351 additions & 48 deletions

File tree

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# CONTAINER_BUILD: 采用容器构建
77
#
88

9-
FROM registry.cn-hangzhou.aliyuncs.com/142vip-infra/node:20.18.0-alpine AS build_base
9+
FROM registry.cn-hangzhou.aliyuncs.com/142vip-infra/node:25.9.0-base AS build_base
1010

1111
# 是否配置代理
1212
ARG NEED_PROXY_BUILD=false

docs/ruan-kao/soft-design/专题突破/算法应试与范式要点.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,21 @@ permalink: /ruan-kao/soft-design/topics/pm-algorithm.html
2424

2525
---
2626

27-
## 三、算法范式 · 定性考频与复习要点
27+
## 三、DP / 分治 / 贪心 · 考场快判(摘要)
28+
29+
完整 **概念、举例、复杂度表、决策流程图**[算法设计填空 §〇](/ruan-kao/soft-design/applied/algo-fill.html)
30+
31+
| 范式 | 10 秒识别 | 下午先写什么 |
32+
|------|-----------|--------------|
33+
| **DP** | 最优子结构 + **重叠子问题**;背包/切割/LCS | `dp` **含义** → 初值 → 转移 → **循环方向** |
34+
| **分治** | 子问题 **独立****合并** 得解;假币/归并/快排 | `mid`、递归 **出口**`merge`/`partition` |
35+
| **贪心** | **局部最优** + 题意支持;活动/分数背包/霍夫曼 | **排序关键字** → 扫描 `if` → 累加器初值 |
36+
37+
**一眼排除**:0-1 背包 ≠ 贪心;假币 ≠ DP;分数背包 ≠ 0-1 背包(DP)。
38+
39+
---
40+
41+
## 四、算法范式 · 定性考频与复习要点
2842

2943
> **高 / 中 / 低** 指在公开回忆卷与教辅中的常见程度,**非官方**
3044
@@ -45,14 +59,14 @@ Java 常叠加 **集合、`String`、`Comparator`** 等空,详见 [Java程序
4559

4660
---
4761

48-
## 、复习侧重(推测 · 仅供参考)
62+
## 、复习侧重(推测 · 仅供参考)
4963

5064
1. 仍以 **可读过程 + 少量关键空** 为主。
5165
2. 载体多为栈、队列、哈希、二叉树、图(含网格 BFS)。
5266
3. **Java 与 C 并行准备** 程序填空,以当年卷面为准。
5367
4. 极冷门数论在设计师下午 **性价比低**
5468

55-
### 4.1 2017-2019 第四题样本带来的训练顺序
69+
### 5.1 2017-2019 第四题样本带来的训练顺序
5670

5771
| 范式 | 样本题型 | 优先训练的空 |
5872
|------|----------|--------------|
@@ -64,7 +78,7 @@ Java 常叠加 **集合、`String`、`Comparator`** 等空,详见 [Java程序
6478

6579
---
6680

67-
## 、考场时间策略
81+
## 、考场时间策略
6882

6983
| 阶段 | 建议 |
7084
|------|------|
@@ -82,7 +96,7 @@ flowchart LR
8296

8397
---
8498

85-
## 、维护建议
99+
## 、维护建议
86100

87101
固定一套真题来源;每做一套在 [真题统计](/ruan-kao/soft-design/topics/paper-patterns.html#stats-algo) **增一行**——两个月后「个人考频」会清晰到不必依赖二手统计文。仓库不收录真题原文。
88102

docs/ruan-kao/soft-design/专题突破/设计模式应试要点.md

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ permalink: /ruan-kao/soft-design/topics/patterns-exam.html
55

66
# 设计模式应试要点(下午高频)
77

8-
> 下午常在 **UML 类图 / 场景描述** 中考 **GoF 模式识别与选型**细节与例题见 **[UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html)**;本文只保留 **阅卷友好 + 易混排除 + 速记表**,便于考前扫读。
8+
> 下午常在 **UML 类图 / 场景描述** 中考 **GoF 模式识别与选型****23 种模式分类、每模式举例、三类快判****[UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html)** §1.3;本文保留 **阅卷检查表 + 易混排除 + 意图速扫**,便于考前扫读。
99
1010
## 一、下午拿分动作(检查表)
1111

@@ -44,39 +44,41 @@ permalink: /ruan-kao/soft-design/topics/patterns-exam.html
4444

4545
---
4646

47-
## 三、GoF 意图速扫(下午选项常见)
47+
## 三、GoF 23 种意图速扫(下午选项常见)
4848

49-
| 创建型 | 一句话 |
50-
|--------|--------|
49+
完整 **举例 + 角色 + 题干关键词**[UML与设计模式](/ruan-kao/soft-design/applied/uml-patterns.html) **§1.3**
50+
51+
| 创建型(5) | 一句话 |
52+
|-------------|--------|
5153
| Singleton | 全局唯一实例 |
5254
| Factory Method | 子类决定实例化哪一个产品类 |
5355
| Abstract Factory | 创建 **一族** 相关对象 |
54-
| Prototype | 用克隆代替 new |
5556
| Builder | 分步构造复杂对象 |
57+
| Prototype | 用克隆代替 new |
5658

57-
| 结构型 | 一句话 |
58-
|--------|--------|
59+
| 结构型(7) | 一句话 |
60+
|-------------|--------|
5961
| Adapter | 把不兼容接口转成客户端期望 |
60-
| Bridge | 抽象与实现分离扩展 |
61-
| Composite | 树形部分-整体 |
62+
| Bridge | 抽象与实现分离、两维扩展 |
63+
| Composite | 树形部分-整体一致对待 |
6264
| Decorator | 包装对象动态加职责 |
6365
| Facade | 对外统一简单接口 |
6466
| Flyweight | 共享细粒度对象 |
6567
| Proxy | 为对象提供替身以控制访问 |
6668

67-
| 行为型 | 一句话 |
68-
|--------|--------|
69+
| 行为型(11) | 一句话 |
70+
|--------------|--------|
6971
| Chain of Responsibility | 沿链传递请求直到被处理 |
7072
| Command | 请求封装为对象,可撤销/队列 |
71-
| Interpreter | 文法解释(少考大题|
73+
| Interpreter | 文法解释(上午概念多|
7274
| Iterator | 顺序访问聚合元素 |
73-
| Mediator | 多对象间通过中介通信 |
75+
| Mediator | 多对象经中介通信 |
7476
| Memento | 捕获状态以便恢复 |
75-
| Observer | 一对多依赖,状态变通知观察者 |
77+
| Observer | 一对多,主题变则通知 |
7678
| State | 状态对象改变行为 |
7779
| Strategy | 封装可互换算法 |
7880
| Template Method | 骨架固定、子类实现步骤 |
79-
| Visitor | 在不改类结构下定义新操作 |
81+
| Visitor | 不改类结构下定义新操作 |
8082

8183
---
8284

docs/ruan-kao/soft-design/基础知识/数据结构与算法.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,19 @@ O(1) < O(\log n) < O(n) < O(n\log n) < O(n^2) < O(n^3) < O(2^n) < O(n!)
6060
| 分块查找 | 块间有序、块内可无序 | 索引查找 + 块内查找 | 常考“块间有序,块内无序” |
6161
| 哈希查找 | 哈希函数与冲突处理 | 接近 \(O(1)\) | 装填因子影响冲突 |
6262

63-
### 1.5 算法思想
63+
### 1.5 算法思想(DP / 分治 / 贪心)
6464

65-
- **分治、DP、贪心、回溯**:题干关键词「最优子结构+重叠子问题」→DP;「局部最优」→贪心;「解空间树剪枝」→回溯。
65+
| 范式 | 识别关键词 | 典型复杂度(记阶) |
66+
|------|------------|-------------------|
67+
| **动态规划** | 重叠子问题、最优子结构;背包/切割/LCS |\(O(n^2)\)\(O(nW)\)\(O(mn)\) |
68+
| **分治** | 独立子问题 + 合并;假币/归并/快排/二分 |\(O(n\log n)\)\(O(\log n)\) |
69+
| **贪心** | 局部最优;活动安排、分数背包、霍夫曼 |\(O(n\log n)\)(含排序) |
70+
71+
- **分治 vs DP**:子问题 **是否重叠**——重叠用 **记表(DP)**,不重叠 **分治+合并**
72+
- **贪心 vs DP**:0-1 背包用 **DP****分数**背包可 **贪心**(按单位价值)。
73+
- **回溯**:解空间搜索 + 剪枝(n 皇后、Hamilton),与上三者不同。
74+
75+
**举例、决策流程图、经典题复杂度全表**[算法设计填空 §〇](/ruan-kao/soft-design/applied/algo-fill.html)
6676

6777
## 二、速记与背诵
6878

docs/ruan-kao/soft-design/应用技术/UML与设计模式.md

Lines changed: 173 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,58 @@ permalink: /ruan-kao/soft-design/applied/uml-patterns.html
1616
| 箭头方向 | 基本用例 → 被包含用例 | 扩展用例 → 基本用例 |
1717
| 记忆 | **include = 硬包含** | **extend = 外挂扩展** |
1818

19-
### GoF 三类(结构记忆)
19+
### GoF 三类:10 秒区分(软考常考)
20+
21+
| 类型 | 核心问题 | 记一句 | 数量 |
22+
|------|----------|--------|------|
23+
| **创建型** | **怎么 new 出来** | 隐藏创建细节,让系统少依赖具体类 | **5** |
24+
| **结构型** | **怎么拼在一起** | 类/对象组合成更大结构,接口仍好用 | **7** |
25+
| **行为型** | **怎么分工协作** | 对象间通信、算法与职责怎么分配 | **11** |
26+
27+
**考场快判口诀**
28+
29+
- 题干强调 **唯一实例、分步构建、克隆、工厂/产品族** → 先想 **创建型**
30+
- 题干强调 **接口转换、包装一层、统一入口、树形整体-部分、共享对象、替身** → 先想 **结构型**
31+
- 题干强调 **算法可换、状态变行为变、通知订阅、请求封装、沿链传递、访问聚合** → 先想 **行为型**
2032

2133
```mermaid
22-
flowchart TB
23-
subgraph CR["创建型"]
24-
c1[单例 / 工厂族 / 建造者 / 原型]
34+
flowchart LR
35+
subgraph CR["创建型 ×5"]
36+
direction TB
37+
S[Singleton]
38+
FM[Factory Method]
39+
AF[Abstract Factory]
40+
B[Builder]
41+
P[Prototype]
2542
end
26-
subgraph ST["结构型"]
27-
s1[适配 / 装饰 / 外观 / 代理 / 桥接 / 享元 / 组合]
43+
subgraph ST["结构型 ×7"]
44+
direction TB
45+
Ad[Adapter]
46+
Br[Bridge]
47+
Co[Composite]
48+
De[Decorator]
49+
Fa[Facade]
50+
Fl[Flyweight]
51+
Pr[Proxy]
2852
end
29-
subgraph BE["行为型"]
30-
b1[策略 / 模板方法 / 观察者 / 状态 / 命令 / 责任链…]
53+
subgraph BE["行为型 ×11"]
54+
direction TB
55+
Ch[Chain of Responsibility]
56+
Cm[Command]
57+
In[Interpreter]
58+
It[Iterator]
59+
Me[Mediator]
60+
Mem[Memento]
61+
Ob[Observer]
62+
St[State]
63+
Sr[Strategy]
64+
TM[Template Method]
65+
Vi[Visitor]
3166
end
3267
```
3368

69+
> **23 种** = GoF 经典全集(软考下午程序填空与 UML 题多考其中 **加粗** 模式)。速扫表见 [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html)
70+
3471
## 一、知识与应试(考点·难点·知识点合一)
3572

3673
### 1.1 类图与关系
@@ -55,33 +92,144 @@ flowchart TB
5592
- **顺序图**:生命线、同步/异步消息、`alt/opt/loop` 框。
5693
- **状态图**:状态、事件、守卫;与活动图区别(状态 vs 控制流)。
5794

58-
### 1.3 GoF 模式(下午高频)
95+
### 1.3 GoF 23 种设计模式(分类 · 意图 · 举例 · 角色)
96+
97+
下午题常见两种:**给类图/代码空填模式名与角色****给场景选模式**。下表按 **创建型 → 结构型 → 行为型** 排列;**粗体** 为近年卷面高频。
98+
99+
---
100+
101+
#### 一、创建型(5)——关心「对象的诞生」
102+
103+
| 模式 | 意图(背一句) | 生活/业务举例(帮助记忆) | 典型角色 / 卷面空位 |
104+
|------|----------------|---------------------------|---------------------|
105+
| **Singleton**<br>单例 | 保证类 **只有一个实例**,全局访问点 | 配置中心、线程池、日志管理器「全系统一份」 | `getInstance()`、私有构造 |
106+
| **Factory Method**<br>工厂方法 | **子类决定** 实例化哪一个具体产品 | 文档应用:`WordDocument` / `PdfDocument` 由子类工厂创建 | `Creator``Product``createProduct()` |
107+
| **Abstract Factory**<br>抽象工厂 | 创建 **一族相互关联** 的产品,且族可切换 | UI 主题:**Win 按钮+滚动条** vs **Mac 按钮+滚动条** 成套换肤 | `AbstractFactory``AbstractProductA/B` |
108+
| **Builder**<br>建造者 | **分步构建** 复杂对象,同一过程不同表示 | 套餐:`Director` 按步骤组装汉堡+可乐;要「儿童餐/豪华餐」换 `Builder` | **`Builder``ConcreteBuilder``Director``Product`** |
109+
| **Prototype**<br>原型 |**克隆** 复制已有对象,少调 `new` | 简历模板复制后改姓名;图形编辑器「复制粘贴」图形 | `clone()``Prototype` |
59110

60-
| 模式 | 关键词 |
61-
|------|--------|
62-
| 工厂方法 | 子类决定实例化 |
63-
| 抽象工厂 | 产品族 |
64-
| 适配器 | 接口转换 |
65-
| 装饰 | 动态叠加职责 |
66-
| 外观 | 统一对外接口 |
67-
| 代理 | 控制访问 |
68-
| 策略 | 算法互换 |
69-
| 模板方法 | 骨架固定、步骤可覆盖 |
70-
| 观察者 | 通知订阅 |
71-
| 状态 | 状态对象改变行为 |
72-
| 命令 | 请求封装为对象 |
111+
**创建型易混**
112+
113+
| 对比 | 分辨 |
114+
|------|------|
115+
| 工厂方法 vs 抽象工厂 | 工厂方法:**一个产品等级** 由子类选具体类;抽象工厂:**多产品成族** 一起换 |
116+
| 建造者 vs 抽象工厂 | 建造者:**同一构建流程、逐步装配**;抽象工厂:**一次性拿齐一族产品** |
117+
| 单例 vs 静态类 | 单例可 **多态、延迟加载、可被继承**(题里常考「全局唯一」) |
118+
119+
---
73120

74-
- **〔真题〕**:给类图问模式名;或给场景选模式(「算法可替换」→策略等)。
121+
#### 二、结构型(7)——关心「类和对象的组合」
122+
123+
| 模式 | 意图(背一句) | 生活/业务举例 | 典型角色 / 卷面空位 |
124+
|------|----------------|---------------|---------------------|
125+
| **Adapter**<br>适配器 |**不兼容接口** 转成客户端期望的接口 | 欧标插头 → 转接头 → 国标插座;旧系统 API 包一层给新系统调 | `Target``Adaptee``Adapter` |
126+
| **Bridge**<br>桥接 | **抽象与实现分离**,两维度独立扩展 | 遥控器(抽象)+ 电视机/音响(实现);跨平台 **消息发送** × **加密算法** | **`Abstraction``Implementor`** |
127+
| **Composite**<br>组合 | **树形** 结构,统一对待叶子与容器 | 文件夹/文件;菜单/菜单项;组织架构「部门-员工」 | `Component``Leaf``Composite` |
128+
| **Decorator**<br>装饰 | **动态** 给对象叠加职责(包装) | 咖啡 + 加奶 + 加糖;`InputStream``Buffered` 再套 `GZIP` | `Component``Decorator``ConcreteDecorator` |
129+
| **Facade**<br>外观 | 为子系统提供 **统一、简单** 的对外接口 | 开机键一键启动:CPU/内存/硬盘子系统对外只暴露 `computer.start()` | `Facade`、多个 `Subsystem` |
130+
| **Flyweight**<br>享元 | **共享** 细粒度对象,用外在状态区分 | 围棋棋子:黑白各 **一个** 享元对象,位置存在外部;文字编辑器字符样式共享 | `FlyweightFactory``intrinsic/extrinsic state` |
131+
| **Proxy**<br>代理 | 为对象提供 **替身**,控制访问 | 明星经纪人挡电话;懒加载大图;权限校验后再访问真实对象 | `Subject``RealSubject``Proxy` |
132+
133+
**结构型易混(软考最爱考)**
134+
135+
| 对比 | 分辨 |
136+
|------|------|
137+
| **适配器 vs 装饰 vs 代理** | 适配:**改接口**;装饰:**同接口加功能**;代理:**同接口控访问**(常伴延迟/权限) |
138+
| **外观 vs 适配器** | 外观:**简化一堆子系统**,接口可全新;适配:**一对一转接口** |
139+
| **桥接 vs 策略** | 桥接:**结构**上拆「抽象/实现」两继承体系;策略:**行为**上换算法对象 |
140+
| **组合 vs 装饰** | 组合:**树形部分-整体**;装饰:**一层层包装同一接口** |
141+
142+
---
143+
144+
#### 三、行为型(11)——关心「对象如何协作」
145+
146+
| 模式 | 意图(背一句) | 生活/业务举例 | 典型角色 / 卷面空位 |
147+
|------|----------------|---------------|---------------------|
148+
| **Chain of Responsibility**<br>责任链 | 请求沿 **处理者链** 传递,直到有人处理 | 请假:组长 → 经理 → 总监;过滤器链、异常处理链 | `Handler``handleRequest()``setSuccessor` |
149+
| **Command**<br>命令 |**请求封装成对象**,支持撤销/队列/日志 | 遥控器按键 = 命令对象;编辑器 **撤销/重做**、事务队列 | `Command``Receiver``Invoker` |
150+
| **Interpreter**<br>解释器 |**文法** 定义解释类(表达式树) | 简单计算器 `a+b`;正则、规则引擎(上午选择常考概念) | `AbstractExpression``Terminal/Nonterminal` |
151+
| **Iterator**<br>迭代器 | **顺序访问** 聚合元素,不暴露内部结构 | `for-each` 遍历列表;多种遍历方式(正序/逆序) | `Iterator``Aggregate` |
152+
| **Mediator**<br>中介者 | 多对象 **不直接引用**,经中介通信 | 聊天室:用户只连 **Mediator**,不两两直连;机场塔台调度飞机 | `Mediator``Colleague` |
153+
| **Memento**<br>备忘录 | **保存/恢复** 对象内部状态,不破坏封装 | 游戏存档;编辑器 **快照** 回滚 | `Originator``Memento``Caretaker` |
154+
| **Observer**<br>观察者 | **一对多**,主题变则通知观察者 | 公众号推送;MVC 中 Model 变 View 更新;股票行情订阅 | **`Subject``Observer``attach/notify/update`** |
155+
| **State**<br>状态 | **状态对象** 改变则行为改变(像换类) | 订单:待支付/已发货/已完成;电梯运行/停止/维修 | **`Context``State``ConcreteState`** |
156+
| **Strategy**<br>策略 | 封装 **可互换算法**,运行时选用 | 出行:步行/公交/打车 **策略** 可换;排序比较器 `Comparator` | **`Context``Strategy``ConcreteStrategy`** |
157+
| **Template Method**<br>模板方法 | **骨架在父类固定**,子类实现部分步骤 | 泡茶/泡咖啡:烧水相同,「放茶叶/放咖啡」子类不同 | `AbstractClass``templateMethod()`、钩子方法 |
158+
| **Visitor**<br>访问者 | **不改元素类**,在外部加新操作 | 对 AST 各节点做「类型检查/代码生成」;报表导出遍历不同部门节点 | `Visitor``visit(Element)``accept()` |
159+
160+
**行为型易混(必背)**
161+
162+
| 对比 | 分辨 |
163+
|------|------|
164+
| **策略 vs 状态** | 策略:客户端 **主动换** 算法;状态:随 **内部状态迁移** 自动换行为 |
165+
| **策略 vs 模板方法** | 策略:**组合** 算法对象;模板:**继承** 覆写步骤 |
166+
| **观察者 vs 中介者** | 观察者:**主题发布**,观察者订阅;中介者:**中心枢纽**,同事互不直连 |
167+
| **命令 vs 策略** | 命令:封装 **一次操作/请求**(常带撤销);策略:封装 **算法族** |
168+
| **状态 vs 策略** | 状态类图常像策略,但语境是 **状态机/生命周期** → 状态 |
169+
170+
---
171+
172+
#### 1.3.1 按题型速查(上午选择 + 下午填空)
173+
174+
| 题干关键词 | 优先模式 |
175+
|------------|----------|
176+
| 全局唯一、单实例 | Singleton |
177+
| 子类决定创建哪种产品 | Factory Method |
178+
| 成套换肤、产品族 | Abstract Factory |
179+
| 分步组装、同样构建不同表示 | **Builder** |
180+
| 克隆、复制已有对象 | Prototype |
181+
| 旧接口、不兼容、转接 | Adapter |
182+
| 两个维度独立变化 | **Bridge** |
183+
| 树形、部分-整体一致对待 | Composite |
184+
| 动态叠加功能、包装 | Decorator |
185+
| 简化子系统、统一入口 | Facade |
186+
| 大量重复对象、共享内部状态 | Flyweight |
187+
| 延迟加载、权限、替身 | Proxy |
188+
| 沿链传递、逐级审批 | Chain of Responsibility |
189+
| 撤销、重做、请求对象化 | Command |
190+
| 文法、表达式 | Interpreter |
191+
| 遍历集合、不暴露内部 | Iterator |
192+
| 多对象互聊、降低网状依赖 | Mediator |
193+
| 存档、恢复快照 | Memento |
194+
| 订阅通知、发布 | **Observer** |
195+
| 订单状态、会员等级变行为 | **State** |
196+
| 算法可替换、运行时切换 | **Strategy** |
197+
| 固定流程、子类填步骤 | Template Method |
198+
| 对结构加新操作、不改原类 | Visitor |
199+
200+
- **〔真题〕**:给类图问模式名;或给场景选模式(「算法可替换」→ **Strategy**;「一对多通知」→ **Observer**)。程序填空常考 **Builder / Bridge / State / Strategy / Observer** 角色类名,见 [设计模式应试要点](/ruan-kao/soft-design/topics/patterns-exam.html)
75201

76202
### 1.4 设计原则
77203

78204
- **开闭**:对扩展开放、对修改关闭;**依赖倒置**:依赖抽象而非具体。
79205

80206
## 二、速记与背诵
81207

208+
### UML
209+
82210
- **include 必走,extend 看条件**
83-
- **适配转接口,装饰包一层,外观挡复杂,代理管访问**
84-
- **策略换算法,模板定骨架,观察者广播**
211+
212+
### 三类总括
213+
214+
- **创建**:单例唯一,工厂造对象,抽象工厂造一族,建造者分步装,原型靠克隆。
215+
- **结构**:适配转接口,桥接拆两维,组合成树,装饰包一层,外观挡复杂,享元要共享,代理管访问。
216+
- **行为**:责任链传递,命令可撤销,解释器文法,迭代器遍历,中介者居中,备忘录存档,观察者广播,状态机换行为,策略换算法,模板定骨架,访问者加操作。
217+
218+
### 23 模式英文速记(对照卷面填空)
219+
220+
| 创建型 | 结构型 | 行为型 |
221+
|--------|--------|--------|
222+
| Singleton | Adapter | Chain of Responsibility |
223+
| Factory Method | Bridge | Command |
224+
| Abstract Factory | Composite | Interpreter |
225+
| Builder | Decorator | Iterator |
226+
| Prototype | Facade | Mediator |
227+
| | Flyweight | Memento |
228+
| | Proxy | Observer |
229+
| | | State |
230+
| | | Strategy |
231+
| | | Template Method |
232+
| | | Visitor |
85233

86234
## 三、考场检查清单
87235

0 commit comments

Comments
 (0)