Skills: 高级设计模式
最后更新:2026-08-31
设计模式不是代码的专利——在提示词工程中,同样的智慧能让 Skill 更灵活、更健壮。
1. 策略模式
(1) 概念
根据不同条件选择不同执行策略:
TEXT
📖 仅展示
策略模式结构
┌──────────┐
│ 上下文 │ → 判断条件 → 选择策略
└────┬─────┘
├── 策略 A(Python 项目)
├── 策略 B(TypeScript 项目)
└── 策略 C(Go 项目)
(2) Skill 实现
MARKDOWN
## 审查策略选择
根据项目技术栈自动选择:
{{#if tech_stack == "python"}}
执行 Python 审查策略:
- 检查 type hints
- 检查 docstring
- 检查 PEP 8 合规
{{/if}}
{{#if tech_stack == "typescript"}}
执行 TypeScript 审查策略:
- 检查 any 类型
- 检查接口定义
- 检查类型安全
{{/if}}
(3) 适用场景
| 场景 | 策略维度 | 示例 |
|---|---|---|
| 多语言项目 | 编程语言 | Python/TS/Go 审查 |
| 多环境部署 | 目标环境 | staging/production 策略 |
| 多框架项目 | Web 框架 | React/Vue/Svelte 规范 |
2. 责任链模式
(1) 概念
多个处理器依次处理请求,每个处理器决定是否继续传递:
TEXT
📖 仅展示
责任链示例
输入 → 格式检查 → 安全检查 → 性能检查 → 输出
↓ 失败 ↓ 失败 ↓ 失败
返回错误 返回错误 返回错误
(2) Skill 实现
MARKDOWN
## 代码审查责任链
### 第一关:格式检查
- 文件编码是否正确
- 代码风格是否符合规范
- 格式不通过 → 返回格式问题,不继续
### 第二关:安全检查
- SQL 注入、XSS 检测
- 硬编码密钥检测
- 安全不通过 → 返回安全问题,不继续
### 第三关:质量检查
- 函数长度、圈复杂度
- 重复代码检测
- 质量不通过 → 返回质量问题
### 全部通过 → 输出审查通过报告
(3) 优势
TEXT
📖 仅展示
责任链优势
├── 早退机制:前序检查失败立即返回,节省后续开销
├── 关注点分离:每个检查器只关注自己的维度
├── 可扩展:新增检查维度只需加一个环节
└── 可配置:可以跳过某些检查环节
3. 观察者模式
(1) 概念
当某事件发生时,自动通知所有订阅者:
TEXT
📖 仅展示
观察者模式
事件源:文件变更
├── 观察者 A:自动运行测试
├── 观察者 B:自动代码审查
└── 观察者 C:自动更新文档
(2) Skill 实现
YAML
---
name: file-change-watcher
description: "文件变更触发自动操作"
triggers:
- context: "file_modified"
---
MARKDOWN
## 变更响应规则
文件变更时自动判断:
- 变更 src/**/*.py → 触发 Python 测试
- 变更 src/**/*.ts → 触发 TypeScript 测试
- 变更 docs/** → 触发文档验证
- 变更 .env* → 提醒检查环境配置
4. 模板方法模式
(1) 概念
定义算法骨架,子步骤可定制:
MARKDOWN
## 审查模板方法
### 固定骨架
1. 收集变更
2. 逐文件审查(← 可定制)
3. 汇总报告
4. 输出建议
### 可定制步骤(第 2 步)
按语言/项目类型定制审查维度
(2) Skill 组合实现
TEXT
📖 仅展示
模板方法 = 基础 Skill + 可插拔子 Skill
base-review.md(骨架)
├── 收集变更
├── 调用 {{review_strategy}} Skill(可插拔)
├── 汇总报告
└── 输出建议
python-review.md(具体策略)→ 填入 review_strategy
ts-review.md(具体策略)→ 填入 review_strategy
5. 装饰器模式
(1) 概念
给 Skill 动态添加额外能力,不修改原有逻辑:
TEXT
📖 仅展示
基础 Skill:code-review
├── + 缓存装饰器:缓存审查结果
├── + 日志装饰器:记录审查操作
└── + 通知装饰器:审查完成通知团队
(2) Skill 实现
MARKDOWN
## 增强审查 Skill
在基础审查流程之外,增加:
1. 审查前:记录审查请求和时间
2. 审查后:将结果发送到团队频道
3. 缓存:相同文件未修改时复用上次结果
❓ 常见问题
Q 设计模式在提示词中有用吗?
A 有用。模式的本质是解决特定问题的经验总结。在提示词中用模式思维组织逻辑,输出更可预测、更易维护。
Q 该用哪种模式?
A 看问题类型——多策略选策略模式,流水线选责任链,事件响应选观察者,流程骨架选模板方法。
Q 模式会让 Skill 变复杂吗?
A 过度使用会。每个 Skill 最多用 1-2 个模式。简单问题不需要模式。
📖 小节
- 策略模式:根据条件选择执行策略(多语言/多环境)
- 责任链模式:多处理器依次处理,失败早退
- 观察者模式:事件触发自动通知和响应
- 模板方法模式:固定骨架 + 可定制子步骤
- 装饰器模式:动态增强,不修改原逻辑
📝 作业
- 基础题(难度⭐):用策略模式重构你的审查 Skill,支持 2 种编程语言的审查策略。
- 进阶题(难度⭐⭐):用责任链模式设计一个三关审查 Skill(格式→安全→质量)。
- 挑战题(难度⭐⭐⭐):综合运用 2 种以上模式,设计一个智能审查系统,支持策略选择、责任链检查和自动通知。