Patrones Creacionales: Singleton, Factory, Abstract Factory, Builder, Prototype

Clase 2 de 27Curso de Patrones de Diseño en JavaScript

Contenido del curso

Resumen

Los patrones creacionales son la base para construir software flexible y reutilizable. Comprender cómo abstraer el proceso de creación e instanciación de objetos permite escribir código más extensible y fácil de mantener. A continuación se exploran los cinco patrones creacionales fundamentales y la relación que existe entre ellos.

¿Qué resuelven los patrones creacionales?

Cuando un sistema crece, la forma en que se crean los objetos puede volverse rígida y difícil de modificar. Los patrones creacionales proponen técnicas que separan la lógica de construcción del resto de la aplicación, logrando que el proceso de generar nuevos objetos sea más reutilizable y extensible [0:04].

En lugar de instanciar clases directamente con new, estos patrones encapsulan ese conocimiento y permiten variar qué se crea, cómo se crea y cuándo se crea, sin afectar al código cliente.

¿Cuáles son los cinco patrones creacionales?

Los patrones que se abordan son los siguientes [0:23]:

  • Singleton: garantiza que una clase tenga una única instancia en toda la aplicación y proporciona un punto de acceso global a ella.
  • Factory: delega la creación de objetos a un método o clase especializada, evitando que el cliente conozca la clase concreta que se instancia.
  • Abstract Factory: lleva la idea de Factory un nivel más allá, permitiendo crear familias de objetos relacionados sin especificar sus clases concretas.
  • Builder: separa la construcción de un objeto complejo de su representación, de modo que el mismo proceso de construcción pueda generar distintas representaciones.
  • Prototype: crea nuevos objetos clonando una instancia existente, lo que resulta útil cuando la creación desde cero es costosa.

¿Cómo se relacionan entre sí?

Uno de los aspectos más interesantes es que estos patrones no son mutuamente excluyentes [0:33]. Por ejemplo, es perfectamente válido preguntarse si un Factory podría combinarse con Singleton para asegurar que la fábrica sea única en el sistema. La creatividad juega un papel importante: mezclar patrones de forma consciente produce soluciones más robustas y adaptadas al problema real.

¿Por qué es importante la creatividad al aplicarlos?

Los patrones de diseño no son recetas rígidas. Son guías que deben adaptarse al contexto de cada proyecto. Entender la intención detrás de cada patrón —más que memorizar su estructura— permite combinarlos con criterio y resolver problemas de instanciación de manera elegante sin caer en sobre-ingeniería.

Si ya conoces los fundamentos vistos en la introducción a los patrones de diseño, estos cinco patrones creacionales te darán herramientas concretas para controlar cómo nacen los objetos en tus aplicaciones. ¿Con cuál de ellos has tenido más experiencia o cuál te genera más curiosidad? Compártelo en los comentarios.