云原生 AI 实战营项目之一,更多精彩项目见:云原生 AI 实战营。
本仓库是 《Go 设计模式 61 讲》课程 的源码仓库。里面介绍了 58 种常见的设计模式,及 Go 版代码实现。
如果你想全面学习这些设计模式,欢迎加入 云原生 AI 实战营。里面不仅包含了 《Go 设计模式 61 讲》课程,还包含了大量其他高质量的 Go、云原生、AI Infra 课程。
在 《Go 设计模式 61 讲》课程中一共介绍了 58 种设计模式,这些设计模式列表如下。
| 模式名 | 英文名 | 状态 |
|---|---|---|
| 简单工厂模式 | Simple Factory | ✔ |
| 工厂方法模式 | Factory Method | ✔ |
| 抽象工厂模式 | Abstract Factory | ✔ |
| 建造者模式 | Builder | ✔ |
| 原型模式 | Prototype | ✔ |
| 单例模式 | Singleton | ✔ |
| New 模式 | New | ✔ |
| 函数选项模式 | Functional Options | ✔ |
| 对象池模式 | Object Pool | ✔ |
| 模式名 | 英文名 | 状态 |
|---|---|---|
| 中介者模式 | Mediator | ✔ |
| 观察者模式 | Observer | ✔ |
| 命令模式 | Command | ✔ |
| 迭代器模式 | Iterator | ✔ |
| 模版方法模式 | Template Method | ✔ |
| 策略模式 | Strategy | ✔ |
| 状态模式 | State | ✔ |
| 备忘录模式 | Memento | ✔ |
| 解释器模式 | Interpreter | ✔ |
| 责任链模式 | Chain of Responsibility | ✔ |
| 访问者模式 | Visitor | ✔ |
| 注册表模式 | Registry | ✔ |
| 上下文模式 | Context | ✔ |
| 模式名 | 英文名 | 状态 |
|---|---|---|
| 外观模式 | Facade | ✔ |
| 适配器模式 | Adapter | ✔ |
| 代理模式 | Proxy | ✔ |
| 组合模式 | Composite | ✔ |
| 享元模式 | Flyweight | ✔ |
| 装饰器模式 | Decorator | ✔ |
| 桥接模式 | Bridge | ✔ |
| 模式名 | 英文名 | 状态 |
|---|---|---|
| 条件变量模式 | Condition Variable | ✔ |
| 互斥锁模式 | Lock/Mutex | ✔ |
| 监视器模式 | Monitor | ✔ |
| 读写锁模式 | Read-Write Lock | ✔ |
| 信号量模式 | Semaphore | ✔ |
| 模式名 | 英文名 | 状态 |
|---|---|---|
| 屏障模式 | N-Barrier | ✔ |
| 有界并行性模式 | Bounded Parallelism | ✔ |
| 广播模式 | Broadcast | ✔ |
| 协程模式 | Coroutines | ✔ |
| 生成器模式 | Generator | ✔ |
| 反应器模式 | Reactor | ✔ |
| 并行模式 | Parallelism | ✔ |
| 生产者消费者模式 | Producer Consumer | ✔ |
| 批处理模式 | Batch Processing | ✔ |
| 模式名 | 英文名 | 状态 |
|---|---|---|
| 扇入模式 | Fan-In | ✔ |
| 扇出模式 | Fan-Out | ✔ |
| 未来与承诺模式 | Futures & Promises | ✔ |
| 发布订阅模式 | Publish/Subscribe | ✔ |
| 推模式与拉模式 | Push & Pull | ✔ |
| 模式名 | 英文名 | 状态 |
|---|---|---|
| 隔离模式 | Bulkheads | ✔ |
| 断路器模式 | Circuit-Breaker | ✔ |
| 截止期限模式 | Deadline | ✔ |
| 快速失败模式 | Fail-Fast | ✔ |
| 握手模式 | Handshaking | ✔ |
| 稳态模式 | Steady-State | ✔ |
| 限流模式 | Rate Limiting | ✔ |
| 重试模式 | Retrier | ✔ |
| 模式名 | 英文名 | 状态 |
|---|---|---|
| 计时函数模式 | Timing Functions | ✔ |
| 模式名 | 英文名 | 状态 |
|---|---|---|
| 串联故障模式 | Cascading Failures | ✔ |
| 推荐顺序 | 项目名 | 参考星级 | 参考状态 |
|---|---|---|---|
| 1 | crazybber/go-pattern-examples | ★★★★★ | ✔ |
| 2 | crazybber/awesome-patterns | ★★★★★ | ✔ |
| 3 | tmrts/go-patterns | ★★★★ | ✔ |
| 4 | senghoo/golang-design-pattern | ★★★ | ✔ |
| 5 | lee501/go-patterns | ★★★ | ✔ |
| 6 | mohuishou/go-design-pattern | ★★★ | ✔ |
