Gang of Four Design Patterns

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 Patterns provide for a relationship between objects and finally, Behavioral Patterns help define how objects interact.

Gang of Four Design Patterns

Creational Design Patterns

Abstract Factory. Allows for the creation of objects without specifying their concrete type.

justinekays

December 21, 2018 at 11:41 am

Finding a design pattern blog post that stitches together ideas has been challenging. This blog has become my go-to since I stumbled upon it. Really love your style of writing. If I’d to add one thing that could be improved, it would be adding pros/cons about the pattern.

Inspired by original GoF Design Patterns a 2nd edition would be published citing all 23 or so commonly used or most important design patterns employing only JavaScript or related web development languages where Javascript examples are not appropriate for example CSS variables or serverless databases. A pro edition would also be available for other patterns (perhaps 32 in all) not in the original Design Patterns by GoF. Abstract to concrete real world examples would all be written from Vanilla to Neapolitan flavored Javascript. New edition would make very limited use of jQuery. Examples of in-the-wild popular libraries/frameworks would cite instances where they did it right and where they went wrong. Not a single use of the non-words “foo” and “bar” are printed anywhere in the book as such abstractions are so bland and meaningless that novice programmers often have difficulty grasping the core lessons behind them — novice programmers like me.

Several outstanding books have already been written for example Learning JavaScript Design Patterns (Volume 1.7.0 is completely free online) by Addy Osmani. But the examples are too bland for me. He should have kade use of more real-world examples especially from frameworks. There is also a great website called refactoring.guru giving one a taste of design patterns (also inspired by GoF) or the full book for a small price but he uses fucking cats and other dumb real-world objects to demonstrate use-cases in UML. UML is too much of an abstraction. Beginners to intermediate programmers need real-world example to really grasp the core ideas.

My programming skills are far too low to write/co-write or technically review such a book. But if said book were to be published l would be near the top of a very long list to acquire an initial beta release. I just wanted to throw that out there to get your thoughts.