...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. In addition, design patterns allow developers to communicate using well-known, well-understood names for software interactions. Know when to use a certain design pattern, and when not to. No design pattern is a 42 - the answer to life, the universe and everything. ...