Design patterns are the solution for increased reliability, flexibility and re-usability of the code.
It is also good for better understanding of the code. We can say that it is the based for object ordinated design. With design pattern, we can target the basic problem that occurring in the development life cycle for the code.