Design Patterns are Reusable and Documented solutions for commonly occurring problems in software development.