Ir al contenido principal

Destacado

Node | Debug nestjs app en vscode

Recientemente me encontré trabajando en un proyecto basado en nestjs y una cosa que me sorprendió fue la cantidad de console.log distribuidos por todo el repositorio, señal de que el equipo lo usaba como su principal forma de depurar. Un poco old school para mí gusto para ser sincero, así que, ¿Por qué no usar vscode a tu favor? La siguiente configuración ademas de correr la app,  enlaza  el debugger al proceso node. En MacOS:   Ejecutar > Agregar configuración... Listo, ya podemos poner breakpoints en donde lo requiramos, sencillo no? C you space cowboy!

Javascript | Factory Method Pattern

Los patrones de diseño no son mas que un conjunto de soluciones a los diferentes problemas que se presentan en el diseño/desarrollo de software.

Existen un numero finito y cada uno esta clasificado bajo una determinada categoría: comportamiento, de creación y estructurales.

Hoy voy a escribir sobre el Factory Method Pattern (Método Fabrica) que es un patrón de tipo creacional.

Los patrones creacionales proporcionan mecanismos para la creación de objetos (ADC!).


¿De qué va el Factory Method?

Este patrón consiste básicamente en una función que encapsula la creación de diferentes tipos de objetos u objetos de la misma clase y regresa dichas instancias para su posterior manipulación.

Esto nos permite reutilizar la lógica de creación a través de nuestra aplicación haciendo nuestros código mas flexible.

Veamos algunos ejemplos:


Simple Factory Method

En el ejemplo anterior definimos una fábrica (createActiveUser) bastante sencilla que nos permite crear diferentes usuarios.

El método recibe el nombre y la edad como parámetros, cuyos valores son usados a la hora de crear el objeto literal que al final es devuelto por la función.

Pero donde realmente brilla este patrón es cuando la lógica de creación depende configuraciones dinámicas que se definen en tiempo de ejecución.


A more complex Factory

En este ejemplo podemos observar una fábrica (createNewVehicle) más compleja que recibe una colección de opciones y las inyecta a la instancia del vehículo especificado.

Estas opciones pueden provenir de alguna fuente externa a nuestra aplicación/modulo como un archivo, algún servicio web, etc.

Al final el objeto creado es retornado inmediatamente.


Dependiendo del gusto del programador la implementación puede variar un poco pero definitivamente es un patrón a tener en cuenta a la hora de escribir nuestro código.


See you, internet cowboy

Comentarios

Entradas populares