What is Design Patterns?
Design patterns are formalized practices that a programmer or software designer can use to solve common problems when designing an application or software.
Repeatable design elements and components, often leverage widespread user recognition to aid in the design process. i.e., a hamburger menu is a design pattern that most users know how to interact with.
In software designing, a design pattern is a generic, reusable solution to a commonly occurring problem in a given context. It is not a finished design that can be converted directly into source or machine code. Instead, is a description or template of how to solve a problem that can be used in many different situations.
Design Patterns can be viewed as a structured approach to computer programming intermediate between the levels of a programming paradigm and a concrete algorithm. Object-oriented design patterns typically show relationships between classes or objects, without involving the final application class/objects.