Patrón de diseño
Los patrones de diseño son soluciones reutilizables para el desarrollo de software. Funcionan como plantillas que los programadores pueden usar al crear aplicaciones. No son específicos de determinados lenguajes de programación, sino que son prácticas recomendadas o heurísticas que se pueden aplicar en diferentes entornos de programación.
Aunque los patrones de diseño no dependen de un lenguaje, suelen incluir objetos o clases. Por lo tanto, normalmente se asocian con la programación orientada a objetos. Los patrones individuales se pueden clasificar en tres categorías diferentes: 1) patrones creacionales, 2) patrones estructurales y 3) patrones de comportamiento.
1. Patrones creacionales
Los patrones de diseño creacionales describen formas de crear objetos mediante métodos adecuados para diferentes situaciones. Por ejemplo, el patrón "Singleton" se usa para crear una clase básica que solo tendrá una instancia. Un ejemplo común es una variable global definida en el código fuente de un programa. El patrón "Object Pool" se usa para crear una clase con un "grupo" de objetos que se pueden recuperar cuando sea necesario, en lugar de volver a crearlos. Esto se usa a menudo para fines de almacenamiento en caché.
2. Patrones estructurales
Los patrones de diseño estructurales definen las relaciones entre objetos. Por ejemplo, el patrón "Private Class Data" se usa para limitar el acceso a una clase específica. Esto puede evitar la modificación no deseada de un objeto. La clase "Decorator", por otro lado, permite agregar comportamientos y estados a un objeto durante el tiempo de ejecución. Esto proporciona a los programadores la flexibilidad de agregar a un objeto tantas clases como sea necesario. Un ejemplo es un avatar en un videojuego que acumula armas, armadura y objetos a lo largo del juego. La clase, apropiadamente llamada "Decorator", proporcionaría un buen marco para este proceso.
3. Patrones de comportamiento
Los patrones de diseño de comportamiento describen el comportamiento de los objetos, como la forma en que se comunican entre sí. Un ejemplo es el patrón "Command", que describe objetos que ejecutan comandos. El patrón "Memento" registra el estado de un objeto para que se pueda restaurar a su estado guardado. Estos dos patrones se pueden usar juntos para realizar operaciones de deshacer y rehacer en un programa.
Resumen
Cada una de las tres categorías incluye varios otros patrones de diseño que los programadores pueden usar. Aunque los patrones proporcionan plantillas útiles para los desarrolladores de software, a veces se los critica por ser innecesarios o no ser lo suficientemente específicos para determinadas aplicaciones. Por lo tanto, aunque los patrones de diseño son herramientas útiles para la programación, no es necesario seguirlos exactamente para crear un programa de software bien diseñado.
Pon a prueba tu conocimiento