Over 20 years ago the iconic computer science book “Design Patterns: Elements of Reusable Object-Oriented Software” was first published. The four authors of the book Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides have since been dubbed “The Gang of Four”. In technology circles you’ll often see this nicknamed shorted to GoF. Even though the GoF Design Patterns book was published over 20 years ago, it continues to be an Amazon best seller.

Even though the GoF authors wrote the book in a C++ context, the book remains very relevant to Java programming. C++ and Java are both object oriented languages. The GoF authors through their experience in coding large scale enterprise systems using C++ saw common patterns emerge. These design patterns are not unique to C++. The design patterns can be applied in any object oriented language. As a Java developer using the Spring Framework to develop enterprise class applications, you will encounter the GoF Design Patterns on a daily basis.

The GoF Design Patterns are broken into three categories: Creational Patterns for the creation of objects, Structural Patternsprovide for a relationship between objects and finally, Behavioral Patterns help define how objects interact.

Gang of Four Design Patterns

Creational Design Patterns

Structural Design Patterns

Behavior Design Patterns