Los patrones de diseño son soluciones a problemas comunes de diseño de software que se han probado efectivas. Proporcionan catálogos de elementos reusables, evitan reiterar soluciones ya conocidas, y facilitan el aprendizaje. Existen patrones de diferentes categorías como creacionales, estructurales y de comportamiento. Los patrones no imponen diseños ni eliminan creatividad, sino que aconsejan aplicar soluciones probadas cuando se tenga el mismo problema.