JS: Polimorfismo
Teoría: Despacho por clave (datos)
En relación con el polimorfismo, surge constantemente el término "despacho dinámico". Más adelante nos familiarizaremos con el concepto en sí, pero por ahora hablemos sobre el despacho en general.
El despacho (del inglés dispatch - enviar) es el proceso de coordinar acciones. Por ejemplo, un despachador en un aeropuerto guía los aviones, un despachador en un servicio de taxis conecta a un conductor disponible con un cliente.
Consideremos el siguiente código condicional, en el cual la elección de la rama de ejecución se basa en un valor específico de una variable:
En todos los proyectos existe el concepto de "entorno". Este es el entorno en el cual se ejecuta el proyecto. Durante el desarrollo, el código se ejecuta en el entorno de desarrollo, que tradicionalmente se llama "development". El entorno en el cual la aplicación se ejecuta realmente se llama "production". Dependiendo del entorno de la aplicación, pueden iniciarse, configurarse e incluso funcionar de manera diferente. Por ejemplo, diferentes entornos pueden utilizar diferentes bases de datos.
El código anterior es un ejemplo típico de cómo la configuración cambia según el entorno. Este proceso de selección se puede llamar proceso de despacho.
La estructura condicional estática, en la cual el despacho se realiza por líneas, se puede reemplazar fácilmente con un switch. Esto hace que el código sea más comprensible y sencillo:
Aunque el código se ha vuelto un poco más largo, el switch describe de manera más clara el proceso de despacho. Pero se puede ir aún más lejos y realizar el despacho utilizando una clave de un arreglo asociativo:
Es fácil agregar un valor por defecto utilizando el operador ??:
Esta opción es mejor que las dos anteriores por varias razones. En primer lugar, es más corta, y en segundo lugar, es más flexible. Las estructuras condicionales son código estático que no se puede cambiar sin reescribir el programa en sí, a diferencia de la última opción. Pero los datos son algo completamente diferente. Para mayor comodidad, a menudo se almacenan en archivos de configuración que utilizan formatos como JSON o YAML, por ejemplo:
Con este enfoque, es fácil agregar nuevos comportamientos sin modificar el código de la aplicación. Su poder se siente especialmente en situaciones en las que el código de una biblioteca o framework se encarga del procesamiento. Después de todo, no podemos simplemente tomar, abrir y corregir el código fuente.
Completado
0 / 14