| Tipo de patrón | Patrón | Qué hace / Para qué sirve |
|---|---|---|
| Creacionales | Singleton | Garantiza que haya una sola instancia de una clase y proporciona acceso global. |
| Creacionales | Factory Method | Define una interfaz para crear objetos, pero deja que las subclases decidan la clase concreta. |
| Creacionales | Abstract Factory | Permite crear familias de objetos relacionados sin especificar sus clases concretas. |
| Creacionales | Builder | Separa la construcción de un objeto complejo de su representación, permitiendo pasos diferentes. |
| Creacionales | Prototype | Crea objetos clonando otros existentes en lugar de crearlos desde cero. |
| Estructurales | Adapter | Permite que interfaces incompatibles trabajen juntas adaptando la interfaz. |
| Estructurales | Bridge | Separa la abstracción de la implementación para que puedan variar independientemente. |
| Estructurales | Composite | Permite tratar objetos individuales y grupos de objetos de la misma manera. |
| Estructurales | Decorator | Añade funcionalidad a un objeto de manera dinámica sin modificar su clase. |
| Estructurales | Facade | Proporciona una interfaz simplificada a un conjunto complejo de interfaces. |
| Estructurales | Flyweight | Reduce el uso de memoria compartiendo partes comunes de objetos similares. |
| Estructurales | Proxy | Controla el acceso a un objeto, añadiendo funcionalidad adicional como seguridad o caché. |
| Comportamiento | Observer | Permite que un objeto notifique automáticamente a otros cuando cambia su estado. |
| Comportamiento | Strategy | Permite cambiar el algoritmo de un objeto en tiempo de ejecución. |
| Comportamiento | Command | Encapsula una solicitud como un objeto, separando quien la invoca de quien la ejecuta. |
| Comportamiento | Iterator | Proporciona una forma de recorrer elementos de una colección sin exponer su estructura interna. |
| Comportamiento | Mediator | Centraliza la comunicación entre objetos, evitando dependencias directas. |
| Comportamiento | Memento | Permite guardar y restaurar el estado interno de un objeto sin violar su encapsulación. |
| Comportamiento | State | Permite que un objeto cambie su comportamiento según su estado interno. |
| Comportamiento | Template Method | Define la estructura de un algoritmo, dejando que subclases implementen pasos específicos. |
| Comportamiento | Visitor | Permite agregar operaciones a objetos sin modificar sus clases, separando la lógica de los datos. |