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 个模式。简单问题不需要模式。

📖 小节


📝 作业

  1. 基础题(难度⭐):用策略模式重构你的审查 Skill,支持 2 种编程语言的审查策略。
  2. 进阶题(难度⭐⭐):用责任链模式设计一个三关审查 Skill(格式→安全→质量)。
  3. 挑战题(难度⭐⭐⭐):综合运用 2 种以上模式,设计一个智能审查系统,支持策略选择、责任链检查和自动通知。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏