over and over again in our environment, and then describes
the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice"In software engineering,
a design pattern is a general reusable solution to a commonly occurring problem. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.
Object-oriented design patterns show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.
What is a Design Pattern ?