Documentación completa de los 22 patrones de diseño del catálogo GoF (Gang of Four), con descripciones en español y ejemplos de código en Python.
Fuente: Refactoring Guru
Proporcionan mecanismos de creación de objetos que incrementan la flexibilidad y la reutilización de código.
| Patrón | Descripción |
|---|---|
| Factory Method | Proporciona una interfaz para crear objetos en una superclase, permitiendo a las subclases alterar el tipo de objetos que se crearán. |
| Abstract Factory | Produce familias de objetos relacionados sin especificar sus clases concretas. |
| Builder | Construye objetos complejos paso a paso. |
| Prototype | Copia objetos existentes sin que el código dependa de sus clases. |
| Singleton | Garantiza que una clase tenga una única instancia con un punto de acceso global. |
Explican cómo ensamblar objetos y clases en estructuras más grandes, mientras se mantiene la flexibilidad y eficiencia.
| Patrón | Descripción |
|---|---|
| Adapter | Permite la colaboración entre objetos con interfaces incompatibles. |
| Bridge | Divide una clase grande en dos jerarquías separadas (abstracción e implementación). |
| Composite | Compone objetos en estructuras de árbol para trabajar con ellos como objetos individuales. |
| Decorator | Añade funcionalidades a objetos colocándolos dentro de objetos encapsuladores. |
| Facade | Proporciona una interfaz simplificada a un subsistema complejo. |
| Flyweight | Ahorra RAM compartiendo partes del estado entre varios objetos. |
| Proxy | Proporciona un sustituto o marcador de posición para otro objeto. |
Se encargan de una comunicación efectiva y la asignación de responsabilidades entre objetos.
| Patrón | Descripción |
|---|---|
| Chain of Responsibility | Pasa solicitudes a lo largo de una cadena de manejadores. |
| Command | Convierte una solicitud en un objeto independiente con toda la información sobre la solicitud. |
| Iterator | Recorre los elementos de una colección sin exponer su representación subyacente. |
| Mediator | Reduce las dependencias caóticas entre objetos restringiendo las comunicaciones directas. |
| Memento | Guarda y restaura el estado previo de un objeto sin revelar los detalles de su implementación. |
| Observer | Define un mecanismo de suscripción para notificar a varios objetos sobre eventos. |
| State | Permite a un objeto alterar su comportamiento cuando cambia su estado interno. |
| Strategy | Define una familia de algoritmos intercambiables. |
| Template Method | Define el esqueleto de un algoritmo en la superclase, permitiendo a las subclases sobrescribir pasos. |
| Visitor | Separa algoritmos de los objetos sobre los que operan. |