What are Design Patterns?


Object oriented programming (OOP) comes with many benefits, when implemented properly. However, designing OOP poorly will open the doors to a world of never-ending code smells. Design Patterns help keep those doors closed.

Design Patterns are reusable solutions to reoccurring design problems. They use the four principles of OOP (encapsulation, abstraction, inheritance, and polymorphism) to create software patterns that have been time-tested keep code clean, readable, and most importantly, maintainable.

There are 23 original design patterns first popularized in the book “Design Patterns – Elements of Reusable Object-Oriented Software” written by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, collectively known as the Gang of Four (GOF). The table below lists those 23 design patterns, with a link to each one where you can learn about each pattern.

Hey, wait!!!!
You can use my affiliate link to get your own copy of the “Design Patterns – Elements of Reusable Object-Oriented Software” on Amazon!
>>> Click here to order on Amazon!

1 Factory Design Pattern
2 Builder Design Pattern (Coming soon…)
3 Composite Design Pattern (Coming soon…)
4 Prototype Design Pattern (Coming soon…)
5 Observer Design Pattern (Coming soon…)
6 Facade Design Pattern (Coming soon…)
7 Bridge Design Pattern (Coming soon…)
8 Abstract Factory Design Pattern (Coming soon…)
9 Proxy Design Pattern (Coming soon…)
10 Chain of Responsibility Design Pattern (Coming soon…)
11 Visitor Design Pattern (Coming soon…)
12 Singleton Design Pattern (Coming soon…)
13 Command Design Pattern (Coming soon…)
14 State Design Pattern (Coming soon…)
15 Strategy Design Pattern (Coming soon…)
16 Adapter Design Pattern (Coming soon…)
17 Decorator Design Pattern (Coming soon…)
18 Flyweight Design Pattern (Coming soon…)
19 Mediator Design Pattern (Coming soon…)
20 Iterator Design Pattern (Coming soon…)
21 Memento Design Pattern (Coming soon…)
22 Template Method Design Pattern (Coming soon…)
23 Interpreter Design Pattern (Coming soon…)

Adam Allard

Hi, I'm Adam Allard. I'm a Full Stack Software Engineer for Northrop Grumman creating web applications for the DoD. At this time I'm primarily working with Java and Angular based applications, although I have some years of experience in various languages and frameworks from previous jobs where I dabbled with Python & Django, C# & Xamarin, PHP, and Bootstrap. My hobbies include time with my family, wondering when the Green Bay Packers will win their next Super Bowl, drinking over-priced beer, and of course learning and teaching.

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Posts