Café y Código

2. Patrones creacionales

Estos patrones ofrecen mecanismos de creación que hacen el sistema más flexible: encapsulan quién crea qué, cuándo y cómo, para que el resto del código dependa de abstracciones y no de new dispersos.

Referencia general: Catálogo — Refactoring.Guru (navegación por categorías dentro del sitio).

Factory Method (Refactoring.Guru ↗)

Delegas la creación de objetos a subclases o métodos especializados sin acoplar el cliente al tipo concreto.

Ejemplo ilustrativo — Factory Method
JAVA
1 interface Transporte { void entregar(); }
2
3 abstract class Logistica {
4 abstract Transporte crearTransporte();
5 void planEntrega() { crearTransporte().entregar(); }
6 }

Abstract Factory (Refactoring.Guru ↗)

Familias de objetos relacionados se crean mediante una fábrica abstracta con varias implementaciones.

Ejemplo ilustrativo — Abstract Factory
JAVA
1 interface Boton { void pintar(); }
2 interface FabricaUi {
3 Boton crearBoton();
4 }

Builder (Refactoring.Guru ↗)

Construyes objetos complejos paso a paso, a menudo con un director que orquesta el orden de los pasos.

Ejemplo ilustrativo — Builder
JAVA
1 class Pizza {
2 String masa, salsa;
3 static class Builder {
4 Pizza p = new Pizza();
5 Builder masa(String m) { p.masa = m; return this; }
6 Pizza build() { return p; }
7 }
8 }

Prototype (Refactoring.Guru ↗)

Clonas un prototipo en lugar de instanciar desde cero cuando la creación directa es costosa o incómoda.

Ejemplo ilustrativo — Prototype
JAVA
1 interface ClonableForma extends Cloneable {
2 ClonableForma clonar();
3 }

Singleton (Refactoring.Guru ↗)

Una sola instancia controlada del tipo; úsalo con cuidado para no ocultar dependencias globales.

Ejemplo ilustrativo — Singleton
JAVA
1 public enum Config {
2 INSTANCE;
3 public void cargar() { /* ... */ }
4 }
Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.