In software development, a design pattern is a solution to a commonly occurring problem that is generally agreed on as the best solution. Understanding design patterns will:
Make solving recurring problems easier and faster
Allow you to solve problems with a pre-optimised solutions
Write code that is familiar to those that understand the design pattern