Design patterns provide valuable benefits to the quality of software applications. They allow the programmer and designe to leverage the knowledge and experience of others to solve design problems. The key advantage being that you can be confident the design solution you're using is based on a workable principle and has shown that in practice the design is sound and workable. That is provided that the solution used is the right solution for the problem at hand. It is rather obvious that if the problem at hand is not understood well enough to choose an appropriate design solution, the wrong design solution will probably be chosen. Tha would result in a solution that is inappropriate and therefore the design solution will be incorrect.