This repository contains my notes, exercises, and implementations from a Udemy course on Design Patterns in Go.
It serves as a structured reference for learning, experimenting, and applying SOLID principles, creational, structural, and behavioral design patterns using the Go programming language.
- SRP – Single Responsibility Principle
- OCP – Open/Closed Principle
- LSP – Liskov Substitution Principle
- ISP – Interface Segregation Principle
- DIP – Dependency Inversion Principle
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
In addition to design patterns, I’ve included some Go practice tasks:
- Intersection of 2 Slices
- Random Number Generator
- Merge N Channels
- Number Conveyor
- Worker Pool with Func
- Custom Semaphore with WaitGroup
Clone the repo and navigate into pattern folders to explore the Go examples:
git clone git@github.com:mikebionic/go_course_notes.git
cd go_course_notes/2.Builder/1.stringbuilder
go run main.go
Each folder contains isolated examples that you can run independently.
This repo is based on the Design Patterns in Go course on Udemy, restructured with additional notes and tasks for practice.