Design Patterns

In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn’t 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.

Software designers adapt the pattern solution to their specific project. These are formalized best practices that the programmer can use to solve common problems when designing an application or system.