Creacionales

Los Patrones de Diseño Creacionales se enfocan en la creación de objetos, con el objetivo de controlar la instanciación de clases. Estos patrones no solo hacen el código más flexible y robusto, sino que también ayudan a evitar que el código cliente tenga que conocer los detalles exactos sobre cómo se crean y configuran los objetos que necesita.

Su propósito principal es desacoplar el código que produce los objetos del código que los consume.

Propósito Clave: Controlar la Instanciación

Estos patrones buscan lograr dos cosas fundamentales:

  1. Abstracción de la Creación: Ocultar los detalles de la lógica de instanciación, permitiendo que el cliente trabaje con interfaces o clases abstractas sin preocuparse por la clase concreta que se está creando.

  2. Flexibilidad y Reutilización: Permitir que la aplicación pueda usar diferentes clases concretas sin modificar el código cliente, haciendo el sistema más adaptable a nuevos tipos de objetos.


Ejemplos Fundamentales

Patrón
Concepto Principal
Analogía Simple

Factory Method (Método de Fábrica)

Define una interfaz para crear un objeto, pero permite a las subclases decidir qué clase instanciar. Delega la instanciación a las subclases.

Una fábrica de vehículos que tiene un método crearVehiculo(). Cada tipo de fábrica (Coches, Motos) implementa ese método para producir su producto específico.

Abstract Factory (Fábrica Abstracta)

Proporciona una interfaz para crear familias de objetos relacionados o dependientes sin especificar sus clases concretas.

Una fábrica de muebles que produce conjuntos (sillas, mesas, sofás). Una fábrica concreta (EstiloVictoriano) produce todos los muebles de ese estilo.

Builder (Constructor)

Separa la construcción de un objeto complejo de su representación. Permite construir un objeto paso a paso utilizando el mismo proceso para diferentes resultados.

La construcción de una hamburguesa: primero el pan, luego la carne, luego los toppings. El mismo proceso puede crear una hamburguesa vegetariana o una con doble de carne.

Singleton (Instancia Única)

Garantiza que una clase tenga solo una instancia y proporciona un punto de acceso global a ella.

El presidente de un país 🤴: solo puede haber una única instancia en un momento dado, y todo el mundo accede a esa única persona.

Prototype (Prototipo)

Crea nuevos objetos copiando una instancia existente (el prototipo), en lugar de crearlos desde cero. Es útil cuando la creación es costosa.

Un clonador genético o una fotocopiadora: en lugar de construir un objeto nuevo (escribir el texto), copias una muestra existente y la modificas.

Última actualización