Patrón Factory: Ventajas y Desventajas en Desarrollo de Software
Clase 11 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
08:29 min - 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
Viendo ahora
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
¿Por qué es relevante el patrón Factory en el desarrollo de software?
El patrón Factory es un pilar en el diseño de software, especialmente cuando se busca un sistema robusto y flexible. Permite la creación de objetos concretos pero desde una capa de abstracción común, lo que ofrece ventajas al momento de construir aplicaciones complejas. Este enfoque reduce el alto acoplamiento entre los elementos creadores y los productos, es decir, mantiene la independencia de los componentes, facilitando su reutilización y mantenimiento.
¿Cuáles son las ventajas de utilizar el patrón Factory?
-
Desacoplamiento: La independencia entre los elementos creadores y los productos evita que cambios en uno afecten al otro, promoviendo un sistema más estable.
-
Responsabilidad unificada: Implementado como parte de los principios SOLID, el patrón Factory asegura que cada método o clase realiza una tarea específica. Las fábricas crean y retornan productos sin efectos secundarios.
-
Facilidad de extensión: Añadir nuevos productos o fábricas no requiere modificar las existentes, solo extenderlas. Esto apoya la extensibilidad, haciendo que el diseño de software sea elegante y escalable.
¿Cuáles son las desventajas del patrón Factory?
-
Código genérico en exceso: Si bien es simple añadir nuevos productos, crear nuevas fábricas para cada producto puede llevar a un código innecesariamente complejor, especialmente si se manejan productos en grandes cantidades.
-
Exceso de abstracciones: A veces, no es necesario utilizar tantas abstracciones, pudiendo resolverse con soluciones más directas, lo cual optimiza tiempo y recursos. Sin embargo, en sistemas grandes y complejos, las abstracciones son necesarias para el manejo eficiente del código.
¿Cuándo es ideal usar el patrón Factory?
Si no se conocen de antemano todos los productos necesarios
Cuando se espera que aparezcan nuevos productos sin un número exacto inicial, el patrón Factory brinda un marco flexible donde las nuevas incorporaciones son sencillas de integrar. Esto lo hace ideal para proyectos con requisitos fluctuantes o en crecimiento constante.
Al desacoplar la creación y el uso de productos
Una de las principales funcionalidades del patrón Factory es separar la lógica de creación de la utilización de los productos. Esto permite cambios en la implementación de los productos sin afectar las partes del código que los usan, manteniendo el sistema desacoplado y manejable.
Para extender bibliotecas o frameworks
En situaciones donde se necesite agregar funcionalidad adicional a bibliotecas existentes sin modificar su estructura interna, el patrón Factory es sumamente útil. Facilita la integración de nuevas características fácilmente en frameworks preexistentes mediante la implementación de comportamientos compartidos.
Ejemplo práctico: Adaptadores HTTP en NestJS
NestJS es un framework para la creación de aplicaciones de servidor que funciona perfectamente con Express. Sin embargo, también da la opción de usar Fastify gracias a la flexibilidad del patrón Factory. Ambos, Express y Fastify, pueden ser "inyectados" en NestJS porque implementan un contrato similar, demostrando cómo el patrón Factory permite cambiar entre diferentes opciones de librerías sin complicaciones.
Tu reto: Crear un adaptador HTTP
El desafío consiste en crear tu propio adaptador HTTP para NestJS utilizando un patrón Factory. Debes implementar métodos comunes como Get, Post, Put y Delete. La idea es asegurarse de que la estructura y los métodos cumplidos abran el camino para una futura innovación que permita quizás construir el próximo web framework de moda. Esta actividad estimula la comprensión profunda de cómo los patrones pueden ser aplicados en arquitecturas modernas y flexibles.