¿Cuáles son las formas más efectivas de aprender patrones de diseño y qué ejercicios puedo hacer para mejorar el uso efectivo de los patrones de diseño?

El prerrequisito inicial para el patrón de diseño de aprendizaje es conocer uno de los lenguajes de programación orientada a objetos (O0ps) como C ++, Java, C # etc., como código, la mayor parte del patrón de diseño que gira en torno al concepto de “interfaz, composición, herencia, polimorfismo, encapsulación , Separación de preocupaciones, y cómo crear objetos y manipularlos “. Hay un libro bien reconocido para el patrón de diseño que es “Patrón de diseño: elemento de software orientado a objetos reutilizable” conocido popularmente como Gang of Four. Aquí todos los ejemplos se dan en C ++. si quieres comenzar usando Java que “patrones de diseño de primera cabeza de Eric Freeman, Elisabeth Freeman”. Así es como puedes comenzar a aprender Patrón de diseño.

Una de las mejores maneras de comprender el Patrón de diseño es leer el código fuente abierto, como el documento Java, el código Eclipse.

Pero el aspecto más importante del patrón de diseño es usar ese diseño en su aplicación, que puede aprender solo si aplica ese patrón de diseño en la aplicación. Entonces, mi sugerencia sería escribir una aplicación aún más simple, tratar de usar ese patrón de diseño en su aplicación y hacerse algunas preguntas.
1. Lo que quiero lograr a través de esta aplicación, por ejemplo, cuánto usuario quiero atender, cuál será el alcance de escalabilidad en el futuro, cuánto código quiero reutilizar, qué parte del código no quiero modificar en absoluto en el futuro . ?
2. ¿Qué patrón de diseño usar para este propósito?
3. ¿Por qué usar solo este patrón?
4. ¿Puedo usar más de dos patrones? ¿satisface nuestra necesidad?

Por lo tanto, no existe una regla estricta y rápida para usar solo un patrón de diseño particular, pero la parte importante es si se trata de resolver su propósito. Entonces, los usos del patrón de diseño vienen con la experiencia.

El propósito del patrón de diseño es hacer que su aplicación sea escalable, flexible y reutilizable. entonces hay un formulario de sitio donde puedes aprender la arquitectura de alguna aplicación grande como “Youtube, LinkedIn, Flipkart …”
http://highscalability.com/.

Espero que sea útil.