Patrones de Diseño: Introducción al Patrón Factory
Clase 7 de 27 • Curso de Patrones de Diseño en JavaScript
Contenido del curso
Singleton
Factory
- 7

Patrones de Diseño: Introducción al Patrón Factory
Viendo ahora - 8

Patrón Factory: Implementación y Detalles Esenciales
06:47 min - 9

Implementación del Patrón Factory Method en JavaScript
16:04 min - 10

Comparación del Patrón Factory en JavaScript y TypeScript
04:46 min - 11

Patrón Factory: Ventajas y Desventajas en Desarrollo de Software
10:24 min
Abstract Factory
- 12

Patrón Abstract Factory: Estrategia para Múltiples Fábricas de Coches
03:39 min - 13

Patrones de Diseño: Abstract Factory en Producción de Coches
04:21 min - 14

Implementación del patrón Abstract Factory en JavaScript
10:46 min - 15

Diferencias entre JavaScript y TypeScript en el patrón Abstract Factory
03:33 min - 16

Patrón Abstract Factory: Ventajas y Desventajas
06:00 min
Builder
- 17

Patrón Builder: Diseño y Aplicación en Producción de Vehículos
07:40 min - 18

Patrón Builder: Análisis de Diagrama y Clases Relacionadas
04:46 min - 19

Implementación del Patrón Builder en Producción de Coches
27:39 min - 20

Comparación del Patrón Builder en JavaScript vs TypeScript
03:38 min - 21

Patrón Builder: Ventajas, Desventajas y Aplicaciones Prácticas
07:00 min
Prototype
- 22

Patrón Prototype: Clonación de Objetos en Diseño de Software
03:36 min - 23

Patrón Prototype en JavaScript y TypeScript
01:56 min - 24

Implementación del Patrón Prototype en JavaScript
07:14 min - 25

Comparación de Prototype en JavaScript y TypeScript
06:08 min - 26

Patrón Prototype: Ventajas y Desafíos en Diseño de Software
05:44 min
Conclusiones
¿Qué son los patrones de diseño creacionales y por qué son importantes?
Los patrones de diseño son soluciones probadas a problemas recurrentes en el desarrollo de software. Dentro de ellos, los patrones creacionales se enfocan en la manera de crear objetos. Son especialmente valiosos ya que simplifican y optimizan el proceso de instanciación, haciendo el código más flexible y fácil de mantener. Uno de los patrones creacionales más destacados es el patrón de fábrica (Factory Pattern), que centra su atención en la creación de objetos a partir de una superclase, permitiendo modularidad y extensibilidad.
¿Cómo funcionan los patrones de fábrica?
El patrón de fábrica es un diseño muy útil que ofrece una interfaz para la creación de objetos basados en una superclase. Esto facilita que las subclases creadoras alteren el tipo de objetos a retornar, lo que enriquece su versatilidad. En esencia, el patrón sugiere el uso de un método fábrica en lugar de instanciar objetos directamente con el operador new, lo que ayuda a desacoplar el código y a adaptarlo para incluir nuevos objetos sin necesidad de modificar muchas líneas de código existente.
¿Cómo podemos aplicar el patrón de fábrica en una aplicación de coches?
Imagina que creamos una aplicación para manejar la producción de coches que inicialmente solo fabrica un modelo: el "Mastodon". A medida que la aplicación evoluciona, surge la necesidad de añadir un nuevo modelo llamado "Rhino". Sin el patrón de fábrica, esta ampliación requeriría una refactorización extensa del código. Sin embargo, implementando el patrón, podemos:
- Implementar un método fábrica que maneje la creación de ambos modelos de coches.
- Crear una clase
MastodonFactoryque regrese el coche Mastodon. - Crear una clase
RhinoFactoryque regrese el coche Rhino.
Ambas fábricas seguirán la misma interfaz o clase base, asegurando que cualquier coche producido comparta una interfaz común.
Ejemplo de código en pseudocódigo:
interface CocheBase {
void mostrarCosto();
}
class Mastodon implements CocheBase {
void mostrarCosto() {
// implementación específica de Mastodon
}
}
class Rhino implements CocheBase {
void mostrarCosto() {
// implementación específica de Rhino
}
}
interface FabricaDeCoches {
CocheBase crearCoche();
}
class MastodonFactory implements FabricaDeCoches {
CocheBase crearCoche() {
return new Mastodon();
}
}
class RhinoFactory implements FabricaDeCoches {
CocheBase crearCoche() {
return new Rhino();
}
}
¿Cuál es la ventaja de usar una interfaz de producto común?
Al utilizar una interfaz común para los productos, todas las instancias creadas a través de las fábricas compartirán un comportamiento similar. Esto simplifica la sustitución e integración de nuevos modelos. Si cada coche implementa esta interfaz, podemos llamarlos intercambiablemente en cualquier parte de nuestra aplicación sin preocuparnos del tipo específico. Esta flexibilidad es similar a construir un "gateway" que pueda manejar diferentes protocolos, como REST o GraphQL, dentro del mismo marco estructural.
En resumen, los patrones de fábrica no solo simplifican la adición de nuevos productos, sino que también proporcionan un marco sólido y flexible para el futuro crecimiento de nuestras aplicaciones. Al adoptar estas prácticas, podemos crear código más limpio, modular y fácil de mantener. ¡Sigue aprendiendo y aplicando patrones de diseño para llevar tus habilidades de programación al siguiente nivel!