Patrones de diseño

Archivada en Desarrollo

Patrones de diseño

Serie “design patterns”

Este es el artículo número 1 de la serie “design patterns”:

  1. Patrones de diseño
  2. Patrón de diseño Singleton

Los patrones de diseño son soluciones probadas y documentadas a problemas comunes en el desarrollo de software. Estos patrones se han desarrollado a lo largo de muchos años y son utilizados por desarrolladores de software en todo el mundo para crear aplicaciones de alta calidad y escalables. En este artículo, hablaremos sobre los patrones de diseño, quienes fueron la pandilla de los cuatro y una breve descripción de los patrones de diseño de creación, estructura y comportamiento.

La pandilla de los cuatro

La pandilla de los cuatro, también conocida como GoF (Gang of Four) es el nombre dado a un grupo de cuatro autores que escribieron el libro “Design Patterns: Elements of Reusable Object-Oriented Software”. Los autores son Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides. Este libro se convirtió en un libro de referencia esencial para desarrolladores de software y definió 23 patrones de diseño.

¿Qué es un patrón de diseño?

Un patrón de diseño es una solución general a un problema común en el desarrollo de software. Estos patrones se utilizan para crear aplicaciones de alta calidad y escalables que son fáciles de mantener y extender. Cada patrón de diseño se compone de varios elementos, incluyendo una descripción del problema que aborda el patrón, una descripción de la solución y una explicación de cómo se implementa el patrón en el código.

Patrones de diseño de creación

Los patrones de diseño de creación se utilizan para instanciar objetos. Los patrones de diseño de creación incluyen:

Singleton
Este patrón se utiliza para garantizar que solo exista una instancia de una clase en todo el programa.
Factory Method
Este patrón se utiliza para crear objetos sin especificar la clase exacta del objeto que se creará.
Abstract Factory
Este patrón se utiliza para crear familias de objetos relacionados sin especificar la clase exacta de los objetos que se crearán.
Builder
Este patrón se utiliza para separar la construcción de un objeto complejo de su representación, lo que permite diferentes representaciones del mismo objeto.
Prototype
Este patrón se utiliza para crear nuevos objetos clonando objetos existentes.

Patrones de diseño de estructura

Los patrones de diseño de estructura se utilizan para organizar objetos. Los patrones de diseño de estructura incluyen:

Adapter
Este patrón se utiliza para conectar dos interfaces incompatibles entre sí.
Bridge
Este patrón se utiliza para separar una abstracción de su implementación, lo que permite que ambas varíen de forma independiente.
Composite
Este patrón se utiliza para componer objetos en estructuras de árbol para representar jerarquías de parte-todo.
Decorator
Este patrón se utiliza para agregar funcionalidad a un objeto existente de forma dinámica.
Facade
Este patrón se utiliza para proporcionar una interfaz simplificada a un conjunto complejo de clases.
Flyweight
Este patrón se utiliza para reducir la cantidad de objetos creados, compartiendo objetos similares entre sí.
Proxy
Este patrón se utiliza para proporcionar un sustituto o marcador de posición para otro objeto para controlar el acceso a ese objeto.

Patrones de diseño de comportamiento

Los patrones de diseño de comportamiento se utilizan para definir cómo los objetos interactúan entre sí. Los patrones de diseño de comportamiento incluyen:

Chain of Responsibility
Este patrón se utiliza para pasar solicitudes entre un grupo de objetos que pueden manejarlas.
Command
Este patrón se utiliza para encapsular una solicitud como un objeto, permitiendo que se pueda almacenar y pasar como un argumento.
Interpreter
Este patrón se utiliza para definir una gramática para un lenguaje y para proporcionar un intérprete que interprete sentencias en ese lenguaje.
Iterator
Este patrón se utiliza para proporcionar una forma de acceder a los elementos de un objeto agregado de forma secuencial sin exponer su representación interna.
Mediator
Este patrón se utiliza para reducir las dependencias entre objetos, haciendo que se comuniquen a través de un objeto mediador.
Memento
Este patrón se utiliza para capturar y restaurar el estado interno de un objeto sin romper la encapsulación.
Observer
Este patrón se utiliza para definir una dependencia uno a muchos entre objetos, de modo que cuando un objeto cambia de estado, todos los objetos que dependen de él sean notificados y actualizados automáticamente.
State
Este patrón se utiliza para permitir que un objeto cambie su comportamiento cuando su estado interno cambia.
Strategy
Este patrón se utiliza para definir una familia de algoritmos, encapsular cada uno de ellos y hacerlos intercambiables.
Template Method
Este patrón se utiliza para definir la estructura básica de un algoritmo y permitir que las subclases proporcionen implementaciones específicas de algunos pasos.
Visitor
Este patrón se utiliza para separar la estructura de un objeto de las operaciones que se pueden realizar en ese objeto.

Los patrones de diseño son soluciones probadas y documentadas a problemas comunes en el desarrollo de software, permiten crear aplicaciones de alta calidad y escalables que son fáciles de mantener y extender.

Próximamente estaré publicando cada uno de estos patrones de diseño con ejemplos en Java, Python, C# y Go.

Javier Sanchez Toledano

Soy programador en Django+Python y WordPress. Auditor líder certificado en la norma ISO 9001:2008. Fotógrafo aficionado.
Redes Sociales:

Tlaxcala, México

Comentarios