design-patternslisted
Install: claude install-skill omeyang/Thoth
# 设计模式与架构专家
使用设计模式解决:$ARGUMENTS
---
## 第一部分:GoF 经典设计模式
### 创建型模式(6种)
| 模式 | 意图 | Go 惯用签名 |
|------|------|-------------|
| 单例 Singleton | 确保唯一实例 | `sync.Once` + `GetInstance()` |
| 工厂方法 Factory Method | 按条件创建不同实现 | `func NewStorage(typ string) (Storage, error)` |
| 抽象工厂 Abstract Factory | 创建相关对象家族 | `type UIFactory interface { CreateButton(); CreateDialog() }` |
| 建造者 Builder | 分步构建复杂对象 | `NewBuilder().Host(h).Port(p).Build()` |
| 函数选项 Functional Options | Go 惯用灵活配置 | `func NewClient(addr string, opts ...Option)` |
| 原型 Prototype | 克隆现有对象 | `type Cloneable interface { Clone() Cloneable }` |
### 结构型模式(7种)
| 模式 | 意图 | Go 惯用签名 |
|------|------|-------------|
| 适配器 Adapter | 接口转换 | `type ZapAdapter struct{ zap *zap.Logger }` |
| 桥接 Bridge | 抽象与实现分离 | 组合接口字段 |
| 组合 Composite | 树形部分-整体 | `type Component interface { Execute(); Add(Component) }` |
| 装饰器 Decorator | 动态添加职责 | `func WithLogging(h Handler) Handler` |
| 外观 Facade | 统一高层接口 | `type OrderFacade struct { inventory; payment; shipping }` |
| 享元 Flyweight | 共享细粒度对象 | `sync.RWMutex` + `map` 缓存 |
| 代理 Proxy | 控制访问 | `CachingProxy` / `LazyProxy` |
### 行为型模式(10种)
| 模式 | 意图 | Go 惯用签名 |
|------|------|-------------|
| 责任链 Chain of Responsibility | 多处理者链 | `type Middleware func(http.Handler) http.Handler` |
| 命令 Command | 请求封装为对象 | `type Command interface { Execute() error; Undo() error }` |
| 迭代器 Iterator | 顺序访问元素 | Go 1.23+ `iter.Seq[T]` |
| 中介者 Mediator | 封装对象交互 | `EventBus` + `Subscribe/Publish` |
| 备忘录 Memento | 捕获内部状态 |