Check out Twingate for secure remote work for developers:
https://www.twingate.com/?utm_source=youtube&utm_medium=referral&utm_campaign=forrest_knight_q424
Today, you’ll learn about 7 different software design patterns. Many of which you already use, whether you realize it or not. Because simply put, they are solutions to common programming problems that appear over and over again, regardless of the language or platform you’re using. That’s what a design pattern is. A repeatable solution to a software engineering problem. Templates that can be applied to multiple situations.
And back in 1994, these four developers now known as the Gang of Four, wrote this book documenting, cataloging, and formalizing 23 commonly used design patterns. So I’d highly recommend reading that book, as it’s still heavily applicable today. But all of these patterns fall into 3 distinct categories.
Creational patterns, are all about object creation. So instead of creating objects directly, these patterns give you more flexibility in how objects come into existence. Think of it like a pizza shop - you don't just throw ingredients together, you might have a menu of pre-defined pizzas (Factory pattern), or let customers build their own piece by piece (Builder pattern).
Structural patterns, deal with how objects relate to each other. Think of them as blueprints for building larger structures from individual pieces. It's like LEGO - you can take complex sets and create simplified instructions for building them. A Death Star has thousands of pieces, but the instruction manual breaks it down into manageable steps.
Behavioral patterns, handle communication between objects - how they interact and distribute responsibility. Which includes the greatest pattern of all time, the strategy pattern. Think of it like switching between different navigation apps - Google Maps for driving, AllTrails for hiking, Transit for public transport. Same goal, different strategies. In code:
The idea of patterns that can exist within software is really amazing. Being able to understand patterns and abstract them out and reuse a strategy to write software is one of the best things you can do, because no matter what software you write there are patterns that can make things simpler and make other people get up to speed.
0:00 3 Types of Patterns
1:34 Singleton Pattern
3:35 Builder Pattern
5:21 Factory Pattern
7:47 Twingate Security
8:58 Facade Pattern
12:56 Adapter Pattern
16:18 Strategy Pattern
20:03 Observer Pattern
22:49 Know When to Use Each One
If you're a developer, sign up to my free newsletter Dev Notes 👉
https://www.devnotesdaily.com/
If you're a student, checkout my Notion template Studious:
https://notionstudent.com
Don't know why you'd want to follow me on other socials. I don't even post. But here you go.
🐱🚀 GitHub:
https://github.com/forrestknight
🐦 Twitter:
https://www.twitter.com/forrestpknight
💼 LinkedIn:
https://www.linkedin.com/in/forrestpknight
📸 Instagram:
https://www.instagram.com/forrestpknight