•Design patterns are
descriptions of communicating objects and classes that occur in many systems
and that are customized to solve a general design problem in a particular
context
•Design patterns are “reusable
micro-architectures that contribute to an overall system architecture” that
provide a common vocabulary for design
•Design patterns systematically name, motivate, and explain a general design that addresses a recurring design
problem in object-oriented systems. They describe the problem, the solution,
when to apply the solution, and its consequences. They also give
implementation hints and examples. The solution is a general arrangement of
objects and classes that solve the problem. The solution is customized and
implemented to solve the problem in a particular context