Gangs of Four Design Patterns es la colección de 23 patrones de diseño del libro “Patrones de diseño: elementos de software orientado a objetos reutilizable”.
Este libro se publicó por primera vez en 1994 y es uno de los libros más populares para aprender patrones de diseño. Los autores del libro fueron Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides. Recibió el apodo de “Gangs of Four” (Gangs de cuatro patrones de diseño) debido a los cuatro autores. Además, recibió un nombre más corto como “GoF Design Patterns” (Patrones de diseño GoF).
Tipos de patrones de diseño de GoF
Los patrones de diseño de GoF se dividen en tres categorías:
- Creacional : Los patrones de diseño que tratan con la creación de un objeto.
- Estructural : Los patrones de diseño en esta categoría tratan la estructura de clases, como la herencia y la composición.
- Conductual : este tipo de patrones de diseño brindan soluciones para una mejor interacción entre objetos, cómo proporcionar un acoplamiento flexible y flexibilidad para extenderse fácilmente en el futuro.
Patrones de diseño creacional
Hay 5 patrones de diseño en la categoría de patrones de diseño creacional.
| Nombre del patrón | Descripción |
|---|---|
| Semifallo | El patrón singleton restringe la inicialización de una clase para garantizar que solo se pueda crear una instancia de la clase. |
| Fábrica | El patrón de fábrica asume la responsabilidad de instanciar un objeto de la clase a una clase Factory. |
| Fábrica abstracta | Nos permite crear una Fábrica para clases de fábrica. |
| Constructor | Creando un objeto paso a paso y un método para finalmente obtener la instancia del objeto. |
| Prototipo | Crear una nueva instancia de objeto a partir de otra instancia similar y luego modificarla según nuestros requisitos. |
Patrones de diseño estructural
Hay 7 patrones de diseño estructural definidos en el libro de patrones de diseño Gangs of Four.
| Nombre del patrón | Descripción |
|---|---|
| Adaptador | Proporciona una interfaz entre dos entidades no relacionadas para que puedan trabajar juntas. |
| Compuesto | Se utiliza cuando tenemos que implementar una jerarquía de partes y todo. Por ejemplo, un diagrama formado por otras partes como un círculo, un cuadrado, un triángulo, etc. |
| Apoderado | Proporcionar un sustituto o marcador de posición para otro objeto para controlar el acceso a él. |
| Peso mosca | Almacenamiento en caché y reutilización de instancias de objetos, utilizadas con objetos inmutables. Por ejemplo, grupo de cadenas. |
| Fachada | Creación de interfaces envolventes sobre interfaces existentes para ayudar a las aplicaciones cliente. |
| Puente | El patrón de diseño de puente se utiliza para desacoplar las interfaces de la implementación y ocultar los detalles de implementación del programa cliente. |
| Decorador | El patrón de diseño decorador se utiliza para modificar la funcionalidad de un objeto en tiempo de ejecución. |
Patrones de diseño de comportamiento
Hay 11 patrones de diseño de comportamiento definidos en los patrones de diseño de GoF.
| Nombre del patrón | Descripción |
|---|---|
| Método de plantilla | Se utiliza para crear un fragmento de método de plantilla y aplazar algunos de los pasos de implementación a las subclases. |
| Mediador | Se utiliza para proporcionar un medio de comunicación centralizado entre diferentes objetos de un sistema. |
| Cadena de responsabilidad | Se utiliza para lograr un acoplamiento flexible en el diseño de software, donde una solicitud del cliente se pasa a una cadena de objetos para procesarlos. |
| Observador | Útil cuando estás interesado en el estado de un objeto y quieres recibir notificaciones cada vez que haya algún cambio. |
| Estrategia | El patrón de estrategia se utiliza cuando tenemos varios algoritmos para una tarea específica y el cliente decide la implementación real que se utilizará en tiempo de ejecución. |
| Dominio | El patrón de comando se utiliza para implementar el acoplamiento suelto en un modelo de solicitud-respuesta. |
| Estado | El patrón de diseño de estado se utiliza cuando un objeto cambia su comportamiento en función de su estado interno. |
| Visitante | El patrón visitante se utiliza cuando tenemos que realizar una operación en un grupo de objetos de tipo similar. |
| Intérprete | define una representación gramatical de un idioma y proporciona un intérprete para tratar esta gramática. |
| Iterador | Se utiliza para proporcionar una forma estándar de atravesar un grupo de objetos. |
| Recuerdo | El patrón de diseño memento se utiliza cuando queremos guardar el estado de un objeto para poder restaurarlo más tarde. |
Conclusión
Los patrones de diseño Gangs of Four sientan las bases de los patrones de diseño básicos en programación. Existen muchos otros patrones de diseño creados sobre la base de estos patrones para requisitos específicos.