一键导入
design-pattern
精通软件设计模式,包括 GoF 模式、架构模式和现代设计原则。应用适当的模式提高代码的可维护性、可扩展性和可伸缩性。使用此技能设计新软件组件、重构现有代码、审查代码设计质量、解决复杂设计问题,或需要 SOLID 原则和代码异味识别指导时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
精通软件设计模式,包括 GoF 模式、架构模式和现代设计原则。应用适当的模式提高代码的可维护性、可扩展性和可伸缩性。使用此技能设计新软件组件、重构现有代码、审查代码设计质量、解决复杂设计问题,或需要 SOLID 原则和代码异味识别指导时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | design-pattern |
| description | 精通软件设计模式,包括 GoF 模式、架构模式和现代设计原则。应用适当的模式提高代码的可维护性、可扩展性和可伸缩性。使用此技能设计新软件组件、重构现有代码、审查代码设计质量、解决复杂设计问题,或需要 SOLID 原则和代码异味识别指导时使用。 |
你是软件设计模式方面的专家,具有深厚的知识:
该技能提供有关软件设计模式的全面知识和实践指导。它帮助你:
在以下情况下使用此技能:
详见 pattern-examples.md 了解下列创建型模式的实现:
- 单例模式:确保类只有一个实例、提供全局访问点、用于配置管理器、连接池、日志记录
- 工厂方法模式:定义创建对象的接口、让子类决定实例化、正确的类型指定
- 建造者模式:逐步构建复杂对象、将构造与表示分策、適用于薩数不辨的对象
- 原型模式:克隆现有对象、当对象创建成本高时使用
- 抽象工厂模式:提供创建相关对象族的接口
详见 pattern-examples.md 了解下列结构型模式的实现:
- 适配器模式:将类的接口转换为另一个接口、允许不兼容的接口一起工作
- 装饰器模式:动态地为对象附加额外的职责、提供细挖的子类化替代方案
- 外观模式:为一组接口提供统一接口、简化复杂子系统
- 代理模式:为另一个对象提供占位符、控制访问、延迟初始化、日志记录
- 组合模式:将对象组合成树形结构、统一对待单个对象和组合
- 桥接模式:将抽象与实现解耦、两者可以独立变化
- 享元模式:在多个对象之间共享公共状态、减少内存占用
详见 pattern-examples.md 了解下列行为型模式的实现:
- 策略模式:定义算法族、使它们可互换
- 观察者模式:定义一对多依赖、通知依赖者
- 命令模式:将请求封装为对象
- 状态模式:允许对象改变其行为
- 模板方法模式:在基类中定义算法骨架
- 迭代器模式:顺序访问聚合元素
- 中介者模式:定义封装对象交互方式的对象
- 备忘录模式:捕获和外部化对象内部状态
- 责任链模式:沿处理程序链传递请求
- 访问者模式:将算法与对象结构分离
详见 pattern-examples.md 了解下列架构模式的实现:
- MVC:分离关注点、用于 Web 应用、桌面应用
- MVVM:将 UI 与业务逻辑分离、使用数据绑定
- 整洁架构:依赖规则、独立于框架、UI、数据库
- 六边形架构:应用核心与外部关注点隔离
- 仓储模式:在领域和数据映射层之间调解
- CQRS:分离读写操作、提高可扩展性和性能
- 事件溯源:将状态存储为事件序列、提供审计跟踪
详见 pattern-examples.md 了解下列现代模式的实现:
- 依赖注入:控制反转原则、从外部提供依赖项
- 服务定位器:用于获取服务的中央注册表
- 空对象模式:提供默认对象而不是 null
- 对象池模式:重用创建成本高的对象
- 断路器模式:防止级联故障、快速失败
单一职责原则(SRP)
开闭原则(OCP)
里氏替换原则(LSP)
接口隔离原则(ISP)
依赖倒置原则(DIP)
上帝对象(God Object)
意大利面代码(Spaghetti Code)
熔岩流(Lava Flow)
金锤子(Golden Hammer)
过早优化(Premature Optimization)
货物崇拜编程(Cargo Cult Programming)
何时使用创建型模式:
何时使用结构型模式:
何时使用行为型模式:
详见 pattern-examples.md 了解下列实际实现示例:
- 示例 1:重构为策略模式(从条件语句到策略对象)
- 示例 2:实现仓储模式(领域实体、接口、具体实现)
审查代码中模式使用时:
| 问题 | 模式 | 何时使用 |
|---|---|---|
| 需要单一实例 | 单例 | 全局状态、资源管理 |
| 复杂对象创建 | 建造者 | 许多可选参数 |
| 相关对象族 | 抽象工厂 | 需要一致的对象族 |
| 克隆现有对象 | 原型 | 对象创建成本高 |
| 接口不匹配 | 适配器 | 集成遗留代码 |
| 添加职责 | 装饰器 | 需要灵活的扩展 |
| 简化复杂系统 | 外观 | 需要简化接口 |
| 控制访问 | 代理 | 延迟加载、访问控制 |
| 可互换算法 | 策略 | 多个算法变体 |
| 通知依赖者 | 观察者 | 事件处理、发布-订阅 |
| 封装请求 | 命令 | 撤销/重做、排队操作 |
| 状态依赖行为 | 状态 | 复杂状态转换 |
设计模式是软件设计中常见问题的经过验证的解决方案。使用它们来:
记住:模式是工具,不是规则。 使用判断力在特定上下文中适当地应用它们。最好的代码通常是有效解决问题的最简单的代码。
Expert Git skills covering interactive rebase, worktree management, reflog recovery, bisect debugging, advanced workflows, commit message best practices, and clean history management. Use this skill when needing advanced Git operations, cleaning commit history, managing multiple worktrees, recovering lost commits, debugging with bisect, or implementing sophisticated Git workflows.
Go language development skill focusing on Fiber web framework, Cobra CLI, GORM ORM, Clean Architecture, and concurrent programming. Use this skill when building Go web applications, developing CLI tools with Cobra, implementing RESTful APIs with Fiber, or need guidance on Go architecture design and performance optimization.
Skill for summarizing the current session's context, including completed tasks, technical decisions, and next steps. Use this skill when you need to create a handover document for a new session, switch contexts without losing critical information, or document what was accomplished before ending a session.
Provides core Swift 6+ language development capabilities, covering concurrency, macros, model design, and business logic. Use this skill when writing ViewModel, Service, or Repository layer code, defining data models, implementing algorithms, writing unit tests, or fixing concurrency warnings and data races.
Specialized in building user interfaces using modern SwiftUI, covering NavigationStack, Observation framework, and SwiftData integration. Use this skill when writing SwiftUI view files, designing app navigation, handling animations and transitions, or binding ViewModel data to the interface.
System architecture design skill covering architecture patterns, distributed systems, technology selection, and enterprise architecture documentation. Use this skill when designing system architectures, evaluating technology stacks, planning distributed systems, or creating architecture decision records and documentation.