 | | A design pattern is an abstraction of a solution for a particular class of problems. |
 | | Design patterns represent the accumulated knowledge of the community of software developers of standardised solutions to recurring problems. |
 | | Design patterns solve specific design problems and make object-oriented designs more flexible and elegant, and ultimately reusable. |