No. Hoy no hay una definición de qué es un patrón de diseño porque:
- La mayoría de los patrones de diseño son conceptos intelectuales que no tienen sentido para usted cuando tiene experiencia, como Bridge, Flyweight, Composit, Mediator, Facad … todos estos son sentido común y resultado directo de OOP y no es necesario que sean reconocido como patrones de diseño
- Algunos patrones de diseño son similares. El patrón de Comando es solo el patrón Adaptador (caso de uso diferente pero el mismo diseño), mientras que el Intérprete es el mismo para el Decorador. Parece que solo necesitaban un libro más grande en ese momento.
- Están desactualizados. Hoy usarás recipientes de inyección de dependencia que harán la Fábrica y Singleton por ti, usarás Eventos / Delegados para el patrón de Observador.
- No utilizan nuevas funciones de lenguajes de programación, como por ejemplo, las clases genéricas en C # y Java son patrones de diseño modernos que los patrones tradicionales que se le preguntarán en la entrevista no los reconocen. Otros ejemplos de características / diseños: Dinámica, Reflicción, Emisión de tiempo de ejecución …
Lo que debe hacer es el diseño correcto que cumpla con los tres principios de OOP, que son: Principio de responsabilidad única, Encapsulación y “No repetir”, sí, hay herencia y polimorfismo, simplemente olvide estos términos porque es mejor descubrirlos que tenerlos como principios El patrón de diseño surgirá de su caso de uso correctamente incluso para patrones estructurales como MVC y MVVM, es solo una cuestión de experiencia que obtendrá con el tiempo si cada vez que escribe un código piensa cómo podría mejorar el desacoplamiento y cómo cumplir Principios de OOP.