JS: Polimorfismo

Teoría: Despacho por nombre de archivo

Otra técnica interesante es el despacho por nombre de archivo.

En algunos sistemas, en lugar de tener un solo archivo con diferentes claves de configuración, se utilizan diferentes archivos que corresponden a diferentes entornos. Por ejemplo:

configs/ database.development.json database.production.json database.test.json

En algún lugar del código fuente debe haber una parte que elige qué archivo cargar. A continuación, se muestra un código que utiliza el despacho por clave:

import fs from 'fs';

const configFileNamesByEnv = {
  development: 'database.development.json',
  production: 'database.production.json',
  test: 'database.test.json',
};

const filename = configFileNamesByEnv[env];
const raw = fs.readFileSync(filename);
const config = JSON.parse(raw);

Es fácil notar que, teniendo el nombre del entorno de ejecución, se puede construir un nombre de archivo adecuado. Así que vamos a hacerlo:

const filename = `database.${env}.json`;
const raw = fs.readFileSync(filename);
const config = JSON.parse(raw);

El código se ha vuelto mucho más corto y ya no requiere cambios al expandirse.

Completado

0 / 14