Los patrones de diseño son geniales, si se usan correctamente.
Es útil recordar que la idea de los patrones de diseño se originó en la arquitectura. La arquitectura puede variar enormemente. Sin embargo, hay muchas ideas centrales que están presentes en cualquier edificio. De esta manera, piense en los patrones como bloques de construcción de diseño. Es importante tener en cuenta que no todos los edificios incluyen todos los patrones arquitectónicos posibles.
Digamos que estás diseñando una casa. En lugar de tener la puerta principal abierta a la calle, desea un área protegida antes de entrar a la casa, es decir, una antesala. Esta área se ajustará a un cierto patrón. Es decir, tendrá dos entradas, algunas paredes y probablemente un techo. Tenga en cuenta que el patrón no especifica puertas, ventanas o cuántas paredes. En la mayoría de las implementaciones, habrá dos puertas, cuatro paredes y quizás ventanas. Sin embargo, el patrón describe un área cerrada con dos entradas. Uno conduce a la antesala misma desde el exterior de la casa y el otro conduce al resto de la casa. La clave aquí es que si desea una antesala debe encerrar un área y proporcionar dos entradas a esa área.
Los problemas típicos con los patrones de diseño en la programación son el uso excesivo y la creencia de que son balas de plata para solucionar cualquier problema. No son. Son formas de comunicarse y pensar sobre ideas útiles de programación. Si los fragmentos de sintaxis de un idioma en particular son los ladrillos y el mortero, los patrones describen formas útiles de organizarlos para satisfacer ciertas necesidades.