Understanding design patterns
One of the most relevant books in software engineering is Design Patterns: Elements of Reusable Object-Oriented Software (1994), written by the Gang of Four (GoF) – Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. This book presented about two dozen OOP patterns and has been recognized as highly important in computer science.
Patterns are actually a concept in architectural design, originally defined by an architect, Christopher Alexander. Still, in software terms, a design pattern is a generally applicable, reusable solution to a commonly-seen problem in software design. Rather than a specific finished and coded design, it’s a description of a solution (the word template is also used) that can solve a given problem that appears in many contexts. Given their advantages, design patterns are best practices that can be used by developers working with different kinds of systems, programming languages, and environments.
The...