A design pattern describes a proven solution to a recurring design problem, placing particular emphasis on the context and forces surrounding the problem, and the consequences and impact of the solution.
Why Use Design Patterns?
There are many good reasons to use design patterns. Here are three:
They are proven : You tap the experience, knowledge and insights of developers who have used these patterns successfully in their own work.
They are reusable : When a problem recurs, you don't have to invent a new solution; you follow the pattern and adapt it as necessary.
They are expressive : Design patterns provide a common vocabulary of solutions, which you can use to express larger solutions succinctly.
It is important remember, however, that design patterns do not guarantee success. You can only determine whether a pattern is applicable by carefully reading its description, and only after you've applied it in your own work can you determine whether it has helped any.