Though very abstract and theoretical, design patterns
represent the ultimate
in re-use.
Many times, the same type of problem is solved more than
once. This
is where design patterns are valuable. They allow programmers to
share and reapply object oriented code among projects and other
programmers.
I've used design patterns in my own software in the
past. Later,
a fellow programmer will ask for advice on a completely unrelated
problem,
and I recommend the same pattern I used. Thus, patterns are not
tied
to specific applications, but are general and can be re-used in many
diverse
programs.