All Projects → mohuishou → Go Design Pattern

mohuishou / Go Design Pattern

golang design pattern go 设计模式实现,包含 23 种常见的设计模式实现,同时这也是极客时间-设计模式之美 的笔记

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Go Design Pattern

chuxiuhong-rust-patterns-zh
Rust设计模式中文翻译
Stars: ✭ 36 (-85.77%)
Mutual labels:  design-patterns
java-design-patterns-web
Java Design Patterns website at https://java-design-patterns.com
Stars: ✭ 81 (-67.98%)
Mutual labels:  design-patterns
Software-Design
No description or website provided.
Stars: ✭ 23 (-90.91%)
Mutual labels:  design-patterns
adhesion-rs
D-inspired contract programming in Rust using macros
Stars: ✭ 49 (-80.63%)
Mutual labels:  design-patterns
data-algorithms-with-spark
O'Reilly Book: [Data Algorithms with Spark] by Mahmoud Parsian
Stars: ✭ 34 (-86.56%)
Mutual labels:  design-patterns
laravel-filters
Need some filters? This package is based on the Repository Design Pattern to let you create specific queries easily.
Stars: ✭ 19 (-92.49%)
Mutual labels:  design-patterns
DataStructures Algorithms Java
Collection of data structures and algorithms challenges that I've solved. 💤
Stars: ✭ 12 (-95.26%)
Mutual labels:  design-patterns
Design
🎨 Everything Design related in OSCA
Stars: ✭ 23 (-90.91%)
Mutual labels:  design-patterns
patterns
📰 A collection of UI / UX patterns for different types of applications
Stars: ✭ 67 (-73.52%)
Mutual labels:  design-patterns
DoFactorydotNetDesignPattern
http://www.dofactory.com/net/design-patterns
Stars: ✭ 17 (-93.28%)
Mutual labels:  design-patterns
design-patterns-java
📗 Classic OOP Design Patterns from GoF, implemented in Java.
Stars: ✭ 25 (-90.12%)
Mutual labels:  design-patterns
riblet-sample
A sample to represent Uber Riblets design pattern using Swift.
Stars: ✭ 42 (-83.4%)
Mutual labels:  design-patterns
js-training
JS Training Course
Stars: ✭ 39 (-84.58%)
Mutual labels:  design-patterns
Kodkod
https://github.com/alirizaadiyahsi/Nucleus Web API layered architecture startup template with ASP.NET Core 2.1, EF Core 2.1 and Vue Client
Stars: ✭ 45 (-82.21%)
Mutual labels:  design-patterns
brevis
CSS at scale
Stars: ✭ 62 (-75.49%)
Mutual labels:  design-patterns
dumb delegator
Delegator and SimpleDelegator in Ruby's stdlib are useful, but they pull in most of Kernel. This is not appropriate for many uses; for instance, delegation to Rails models.
Stars: ✭ 62 (-75.49%)
Mutual labels:  design-patterns
CSharpDesignPatterns
Examples of design patterns, using C# code.
Stars: ✭ 84 (-66.8%)
Mutual labels:  design-patterns
software-design-pattern
Software design pattern
Stars: ✭ 43 (-83%)
Mutual labels:  design-patterns
common
常用的模式、方法、算法。Common patterns and methods.
Stars: ✭ 59 (-76.68%)
Mutual labels:  design-patterns
design-patterns-for-parser-combinators
A Really Cool Calculator written in Haskell... or is it?
Stars: ✭ 29 (-88.54%)
Mutual labels:  design-patterns

go-design-pattern

总结

原本预计是在十月底更新完毕这个系列,到今天是11-05,晚了几天,不过也还好,这是第一次这么密集的去更新博客上的内容,更多的是以笔记的形式来呈现,加上这篇一共24篇文章差不多两个半月的时间,平均每周输出两篇,感觉还是不错。后续可能会视情况不定期的更新一些实战内容,也有可能没有。接下来下一个系列应该是数据结构与算法,包含对 Go 中一些底层数据和标准库包的学习,例如 slice, sort 等等。

话说回来,回头再看学习设计模式我们究竟需要学习一些什么?

  • 写 Go 需要使用到设计模式么?
    • 需要,但是切记请勿使用其他语言的方式来写 Go
    • 如果看过之前的一些文章,就会发现类似 JAVA 的这些面向对象语言中的某些设计模式的写法在 Go 中会十分的别扭
    • 但是 Go 不需要设计模式么?不是的,设计模式的思想是想通的,并且我们一直都在使用,例如我们常见的对象创建方式 NewXXX 这其实就是一个简单工厂
  • 设计模式学习的重点是什么?
    • 设计原则,以及设计模式的使用场景和优缺点,实现相对来说还没有那么重要
    • 如果是常见的设计模式是武术招式,那么设计原则就是内功心法,没有内功心法那么招式套路也就是花架子
    • 熟练掌握不同设计模式的使用场景可以帮助我们学会见招拆招,灵活应用而不是只会套路
  • 最后设计模式不是银弹,不要拿着🔨就觉得哪里都像是钉子,不要过早优化,持续重构才是正道

设计原则

同时这也是 Code Review 的重要标准之一

点击展开设计原则

设计原则

设计模式

点击展开设计模式

设计模式

Go设计模式

  • 单例模式包含饿汉式和懒汉式两种实现
  • 工厂模式包含简单工厂、工厂方法、抽象工厂、DI容器
  • 代理模式包含静态代理、动态代理(采用 go generate 模拟)
  • 观察者模式包含观察者模式、eventbus
类型 设计模式(Github) 常用 博客
创建型 单例模式(Singleton Design Pattern) Go设计模式01-单例模式
工厂模式(Factory Design Pattern) Go设计模式02-工厂模式&DI容器
建造者模式(Builder Design Pattern) Go设计模式03-建造者模式
原型模式(Prototype Design Pattern) Go设计模式04-原型模式
结构型 代理模式(Proxy Design Pattern) Go设计模式06-代理模式(generate实现类似动态代理)
桥接模式(Bridge Design Pattern) Go设计模式07-桥接模式
装饰器模式(Decorator Design Pattern) Go设计模式08-装饰器模式
适配器模式(Adapter Design Pattern) Go设计模式09-适配器模式
门面模式(Facade Design Pattern) Go设计模式10-门面模式
组合模式(Composite Design Pattern) Go设计模式11-组合模式
享元模式(Flyweight Design Pattern) Go设计模式12-享元模式
行为型 观察者模式(Observer Design Pattern) Go设计模式13-观察者模式(实现简单的EventBus)
模板模式(Template Method Design Pattern) Go模板模式14-模板模式
策略模式(Strategy Method Design Pattern) Go设计模式15-策略模式
职责链模式(Chain Of Responsibility Design Pattern) Go设计模式16-职责链模式(Gin的中间件实现)
状态模式(State Design Pattern) Go设计模式17-状态模式
迭代器模式(Iterator Design Pattern) Go设计模式18-迭代器模式
访问者模式(Visitor Design Pattern) Go设计模式19-访问者模式
备忘录模式(Memento Design Pattern) Go设计模式20-备忘录模式
命令模式(Command Design Pattern) Go设计模式21-命令模式
解释器模式(Interpreter Design Pattern) Go设计模式22-解释器模式
中介模式(Mediator Design Pattern) Go设计模式23-中介模式
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].