Esta técnica establece la forma de realizar cambios que mejoran a lo interno el código sin afectar su comportamiento externo, con el objetivo que el código sea mas fácil de cambiar y entender.
Este código está escrito en C# y es una solución de granja de SharePoint.
A continuación un segmento de código que evaluaremos en este caso:
public string ObtenerLeyendaMaterialEstudioDerechosReservados()
{
var valorRetornado = _configuracionRepositorio.ObtenerConfiguracionPorId(_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados);
if (valorRetornado != null) return valorRetornado.Valor;
_configuracionRepositorio.CrearLlave(_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados);
valorRetornado = _configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados;
return valorRetornado.Valor;
}
A primera vista podríamos valorar que no requiere ninguna mejora y que lo que hace básicamente es obtener un valor y validar si es nulo crear este valor para luego retornarlo. Pero cuadno el código se repite hay una oportunidad de mejora siempre dentro del código.
Si observamos detenidamente hay una referencia que se repite 3 veces y es la siguiente:
_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados
Y si por algún motivo necesitamos cambiar esta referencia tendriamos que modificar 3 líneas de código. Pero el número de veces hacerlo no esta tan grande, pero el error si puede suceder si no cambiamos las 3.
Entonces vez de cambiarla 3 veces podemos asignarla a una variable y luego reemplazar esta variable donde hace referencia por lo que si la referencia cambia solo la cambiamos una vez de la siguiente forma:
public string ObtenerLeyendaMaterialEstudioDerechosReservados()
{
var leyenda = _configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados;
var valorRetornado = _configuracionRepositorio.ObtenerConfiguracionPorId(leyenda);
if (valorRetornado != null) return valorRetornado.Valor;
_configuracionRepositorio.CrearLlave(leyenda);
valorRetornado = leyenda;
return valorRetornado.Valor;
}
Code4Fun!,
Juan Manuel Herrera Ocheita