Design patterns are repeatable template solutions for frequently occurring problems in software development.