Los patrones de diseño brindan soluciones a una serie de problemas comunes que se presentan en el desarrollo de software. Algunas soluciones son: facilitan la reutilización y la capacidad de expansión del software, reducen la complejidad del código y del acoplamiento, y facilitan el mantenimiento. Sin embargo, estas ventajas solo son posibles si el software es diseñado cuidadosamente. En este artículo se ejemplifican las bondades expuestas anteriormente y se explican los beneficios potenciales de cada patrón de diseño, a través de la aplicación de patrones de diseño en un proyecto de software de un curso de Pregrado en la Universidad de Costa Rica. El proyecto de software utilizado trata sobre un simulador de un procesador multinúcleo, el cual inicialmente posee restricciones que lo hacen muy simple, sin embargo, al aplicar patrones de diseño se puede extender la capacidad del procesador para simular una mayor diversidad de arquitecturas. El artículo va dirigido a profesionales o estudiantes de computación con conocimientos básicos en programación orientada a objetos y arquitectura de computadoras.