El problema con los patrones de aprendizaje es que debe tener suficiente experiencia con el software para haber visto el patrón (normalmente sin nombre) en el código escrito o mantenido. Si nunca ha escrito un observador, leer la descripción del patrón no será fácil de asimilar.
No digo que no deba leer acerca de los patrones. Pero tenga en cuenta que la capacidad de apreciar patrones está limitada por la falta de experiencia.
El otro problema con los patrones, y el problema que tendrá, es que no existen. Al menos existen aún menos que el "software" existe. Los patrones son ideas y conceptos. No son código ejecutable. El código ejecutable puede implementar un patrón, pero el reverso no existe. No puede simplemente escribir "singleton" en su código y de repente existe un singleton. No hay lenguaje en el que agregar el atributo "visitante" de repente haga que todo el pegamento implemente el patrón de visitante. Existen mejores prácticas y ejemplos de patrones en varios idiomas, pero no son algo que pueda guardar en una biblioteca y simplemente llamar.
Entonces, lo que realmente quieres hacer es enseñar algunas de las mejores prácticas en las que el núcleo de esas prácticas implica reconocer y usar patrones. Ser observador es una habilidad muy difícil de enseñar (para todas las formas de observación).
El tercer problema con los patrones es que no son realmente del dominio de los codificadores. Se les llama formalmente patrones de diseño por una razón. Son más propiamente una construcción de tiempo de diseño. Claro que puedes usar patrones para ayudar a refactorizar el código existente. Pero, en general, los patrones de diseño son jerga para simplificar la discusión del diseño. De nuevo, esta es la razón por la cual no hay ninguna biblioteca de códigos singleton. Usar un singleton es una aproximación al código, no al código en sí mismo.
Dicho todo esto, intentar educar a los programadores sobre los patrones de diseño no puede hacer daño. Hacer que los programadores piensen es algo bueno y si solo uno de ellos sale de él con más que una comprensión superficial de los patrones, probablemente salgas adelante del juego. Buena suerte.
¿Cómo se desarrolló esta clase? – jmucchiello
Pluralsight: https://www.pluralsight.com/courses/patterns-library – ssmith