El patrón de diseño Result
Alexis Vega
Posted on May 28, 2024
El patrón de diseño Result (también conocido como Either o Outcome) es una técnica que se utiliza para manejar resultados exitosos o errores en una operación. A menudo se emplea en lenguajes funcionales y se está volviendo más popular en C# debido a su utilidad en el manejo de errores y resultados.
¿Qué es el patrón Result?
El patrón Result se basa en la idea de que una función puede devolver un valor exitoso o un error. En lugar de lanzar excepciones, el patrón Result devuelve un objeto que contiene información sobre el resultado o el error. Esto permite un manejo más explícito y controlado de los posibles resultados.
Implementación en C#
Aquí hay un ejemplo de cómo implementar el patrón Result en C#:
Definición de la clase Result:
public class Result<T>
{
public T Value { get; }
public bool IsSuccess { get; }
public string ErrorMessage { get; }
private Result(T value)
{
Value = value;
IsSuccess = true;
}
private Result(string errorMessage)
{
ErrorMessage = errorMessage;
IsSuccess = false;
}
public static Result<T> Success(T value) => new Result<T>(value);
public static Result<T> Failure(string errorMessage) => new Result<T>(errorMessage);
}
Uso del patrón Result
public Result<int> Divide(int dividend, int divisor)
{
if (divisor == 0)
return Result<int>.Failure("Cannot divide by zero.");
return Result<int>.Success(dividend / divisor);
}
// Ejemplo de uso
var result = Divide(10, 2);
if (result.IsSuccess)
{
Console.WriteLine($"Resultado: {result.Value}");
}
else
{
Console.WriteLine($"Error: {result.ErrorMessage}");
}
Ventajas del patrón Result
Proporciona una forma más explícita de manejar resultados y errores.
Evita el uso excesivo de excepciones.
Facilita el flujo de control en situaciones de manejo de errores.
Consideraciones
Asegúrate de documentar claramente los posibles resultados y errores en tus funciones.
Utiliza el patrón Result cuando sea apropiado, no aplicarlo en exceso.
Alexis Vega, Desarrollador de Baufest
Posted on May 28, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 30, 2024