Four experienced software engineers came together to discuss object oriented programming and design patterns with the goal of improving object oriented software development.
Their research and ideas came together in the seminal work on design patterns, “Design Patterns: Elements of Reusable Object-Oriented Software”. Richard Helm, Erich Gamma, Ralph Johnson, and John Vlissides, published the book in 1994, and the foreword was written by Grady Booch.
The first few chapters of the book detail many of the challenges and problems of creating reusable object oriented software and the remainder of the book focuses on describing the most common design patterns they have encountered in their experience and how to implement them.
What are design patterns
Design patterns are a topic that you will often encounter when as you go through your journey as a java developer and seem to appear again and again in relation to various frameworks, techniques and styles of coding. But what are they, why do we use them and who came up with them.
A design pattern can be thought of as a well thought out generic solution to a fairly common problem. The solution is usually described at a high level and in such a way that it can be implemented and applicable to a variety of languages and platforms.
Over time common design patterns have emerged and these allow developers to implement solutions using a technique that they know has been tried and tested. This allows the quality of the software produced to be improved and may also allow for faster implementation.