En vídeo anexado en el link que aparece a continuación explicare los patrones GoF Estructurales con ejemplos fáciles de entender, cada uno de los ejemplo tienen un contexto, una representación gráfica y el correspondiente diagrama dando la solución a los problemas indicados en el mismo contexto.
Lo que hacemos en este ejemplo es tener una fabrica de preguntas la cual se relaciona directamente con nuestro proyecto, en esta fabrica de preguntas tendremos nuestra Fabrica Abstracta la cual se llama preguntas, esta fabrica abstracta tiene dos fabricas concretas la primera es de pregutas abiertas y la segunda que son preguntas de selección múltiple, cada pregunta tiene productos abstractos; las preguntas abiertas que serian las de completar y de textos libres y para las de seleccion multiple tenemos las que son de única respuestas, las de varias respuestas correctas y falso y verdadero.
Nuestro producto concreto seria la pregunta que se genera en cada uno de los productos abstractos, las fabricas concretas son interfaces que se generan y los productos abstractos extienden de ellas.
Un patrón de diseño es una solución general dada a
un problema común en el diseño de software, este no es un diseño final que
puede ser transferido a código, sino mas bien una descripción o plantilla de
como solucionar un problema que se puede usar en diferentes situaciones.
Los patrones de diseño se usar para agilizar
el desarrollo de software, al utilizar paradigmas de desarrollos ampliamente
probados y bien establecidos, además de que permite mantener y extender el
producto de software de forma más fácil, brindándole una proyección a futuro
más sólida. La implementación de patrones de diseño ayuda a prevenir problemas
que pueden causar grandes errores y aumentar la reusabilidad del código, así
como también permite mejorar la facilidad de lectura del código para
programadores y arquitectos que tienen nociones de cómo funcionan los mismos.
Una gran ventaja de los patrones de diseño es que
permite que los equipos se comuniquen entre si con un lenguaje familiar y
entender fácilmente las interacciones de estos en el software.
BlockScroller implementa AbstractFactory para
definir temas del juego, así pues, se pueden crear motivos por las distintas
estaciones o eventos, para este caso, se implementaron eventos de navidad y Halloween,
con assets distintos, así como un diferente personaje principal, Jack en la
versión de halloween y Santa en la versión de navidad.