云原生 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 | ★★★ | ✔ |