
They reflect untold redesign and recoding as developers have struggled for greater reuse and flexibility in their software. Design patterns capture solutions that have developed and evolved overtime and they are not the designs people tend to generate initially.

This website is about design patterns that describes simple and elegant solutions to specific problems in object-oriented software design. What is required is a principled means of extracting, documenting, conveying, applying, and preserving this design experience without undue time and effort.

Design Patterns are a software engineering concept describing recurring solutions to common problems in software design.
