Este documento describe los patrones de diseño, que son soluciones documentadas a problemas comunes de software que promueven la reutilización y abstracción. Los patrones de diseño establecen un vocabulario común para los programadores y cubren diferentes tipos como creación, comportamiento y estructural. Un ejemplo importante es el patrón modelo-vista-controlador que divide una aplicación en tres componentes separados.