Patrones de Diseño

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.