Los patrones de diseño permiten resolver problemas comunes de diseño de software de forma reutilizable. Se describen tres patrones: el patrón Singleton, que asegura que una clase tenga una única instancia, el patrón Estrategia, que define una familia de algoritmos y los hace intercambiables, y el patrón Observer, que define una dependencia uno a muchos para notificar cambios en el estado de objetos. Conocer y aplicar patrones de diseño mejora la calidad del software al promover el reuso y la flexibilidad.