mirror of
https://github.com/crazybber/go-pattern-examples.git
synced 2024-11-21 19:36:03 +03:00
Examples of implement for awesome go patterns including usual design patterns, in easy understanding examples.
awesomeawesome-goawesome-patternbest-practicesbest-practisesdesign-patternsengineering-designengineering-practiceexampleexamplesgo-awesome-patternsgo-fucking-patternsgo-patternspatterns
.vscode | ||
behavior | ||
creation | ||
gomore | ||
images | ||
structure | ||
cspell.json | ||
go.mod | ||
go.sum | ||
index.go | ||
main.go | ||
README.md |
Golang工程模式示例集合(Go Patterns Examples)
包括了go-patterns 和golang-design-pattern中的全部模式
目前包括了39种Go中常用的、面向工程化和最佳实践的模式/套路,自然也包含常见的23种设计模式,重点是这里全部是例子、通俗易懂,甚至每个模式下的例子,改一下名字,稍微再增加几行代码就可以直接用在项目和工程中了。
每一种设计模式都有其特定的应用场景和要解决的问题,了解模式的关键点就在于弄清这些目标场景和问题,千万不要纠结于:为什么这个模式叫这个名字,这个模式为啥要这样用?
这些模式不是你总结的,也不是我的总结的,如果是你的写的,你可以按照自己的喜欢的感觉给这些套路取名字,让别人去费劲想。
姿势 Ways
- 所谓模式就是套路,如功夫,招有定式
- 学习模式,就是学习套路,弄清楚套路要解决的目标场景,这很重要.
- 这里就是以实际代码示例展示设计模式,通俗易懂
- 除了常见的23种普适的设计模式,Go也有一些属于自己的模式
行为型模式 Behavior Patterns
- 备忘录模式(Memento)
- 中介者模式(Mediator)
- 闭包选项模式(Function Option)
- 观察者模式(Observer)
- 命令模式(Command)
- 迭代器模式(Iterator)
- 模板方法模式(Template Method)
- 策略模式(Strategy)
- [WIP]状态模式(State)
- 访问者模式(Visitor)
- 解释器模式(Interpreter)
- 职责链模式(Chain of Responsibility)
创建型模式 Creation Patterns
- New模式(New)
- 简单工厂模式(Simple Factory)
- 创建者模式(Builder)
- 单例模式(Singleton)
- [WIP]对象池模式(Object Pool)
- 工厂方法模式(Factory Method)
- 抽象工厂模式(Abstract Factory)
- 原型模式(Prototype)
结构型模式 Structure Patterns
- 外观模式(Facade)
- 适配器模式(Adapter)
- 桥模式(Bridge)
- 复合模式(Composite)
- 享元模式(Flyweight)
- 装饰器模式(Decorator)
- 代理模式(Proxy)
更多 Go More
- 发布订阅模式(Pub-Sub)
- 时差模式(Time Profile)
- 上下文模式(Context)
- [WIP]淡入模式(Fan-In)
- [WIP]淡出模式(Fan-Out)
- [WIP]熔断模式(circuit breaker)
- [WIP]限流模式(rate limiting))
- [WIP]信号量模式(Semaphore)
- [WIP]并行模式(Parallelism)
- [WIP]生成器模式(Generators)
- [WIP]屏障模式(N-Barrier)
- [WIP]有限并行模式(Bounded Parallelism)
参考资料(Design patters Articles)
Patterns | Design Patterns | Status |
---|---|---|
go-patterns | design-pattern-tutorial | p |
design_pattern | golang-design-pattern | p |
go-resiliency | Behavioral | v |
go-patterns | go_design_pattern | p |
更多 More
需要重新温习下Go基础?看这里