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
Top comments (0)