namespace Dpz.Core.Entity.Base;

public class ResponseResult
{
    /// <summary>
    /// 是否成功
    /// </summary>
    public bool Success { get; set; }

    /// <summary>
    /// 消息
    /// </summary>
    public string? Message { get; set; }

    /// <summary>
    /// 参数
    /// </summary>
    public object?[]? Arguments { get; set; }

    /// <summary>
    /// 状态码
    /// </summary>
    public int Code { get; set; }

    public static ResponseResult ToSuccess() => new() { Success = true, Message = "操作成功" };

    public static ResponseResult ToSuccess(string? message) =>
        new() { Success = true, Message = message };

    public static ResponseResult ToFail(string? message, int code = 1) =>
        new()
        {
            Success = false,
            Message = message,
            Code = code,
        };
}

public class ResponseResult<T> : ResponseResult
{
    public T? Data { get; set; }

    public ResponseResult<T> SuccessResult(T? data)
    {
        Data = data;
        Success = true;
        return this;
    }

    public ResponseResult<T> FailResult(string message, int code = 1)
    {
        Success = false;
        Message = message;
        Code = code;
        Data = default;
        return this;
    }

    public static ResponseResult<T> ToSuccess(T? data) => new() { Success = true, Data = data };
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

ResponseResult 类分析

这段代码定义了一个通用的响应结果类结构,主要用于API或服务调用的返回结果封装。以下是详细解释:

基础类 ResponseResult

这是一个基础响应类,包含以下主要属性:

  1. Success (bool): 表示操作是否成功
  2. Message (string?): 可选的响应消息
  3. Arguments (object?[]?): 可选的参数数组
  4. Code (int): 状态码,默认为0(成功)或1(失败)

提供了三个静态工厂方法:

  • ToSuccess(): 创建成功响应,默认消息"操作成功"
  • ToSuccess(string? message): 创建带自定义消息的成功响应
  • ToFail(string? message, int code = 1): 创建失败响应,可指定消息和错误码(默认1)

泛型类 ResponseResult<T>

继承自基础类,增加了:

  • Data (T?): 泛型数据字段,用于携带返回的具体数据

提供了:

  1. 实例方法:

    • SuccessResult(T? data): 设置成功状态和数据
    • FailResult(string message, int code = 1): 设置失败状态、消息和错误码,并清空数据
  2. 静态工厂方法:

    • ToSuccess(T? data): 创建成功响应并携带数据

使用场景

这种设计模式常用于:

  • Web API 的统一响应格式
  • 服务层方法的返回结果
  • 前后端分离架构中的标准化响应

优点

  1. 统一的响应结构,便于前端处理
  2. 泛型支持使返回类型安全
  3. 工厂方法简化了对象创建
  4. 支持错误码和消息传递
  5. 可扩展性强(Arguments字段可用于额外信息)

这种设计使得API响应更加规范,便于维护和客户端处理。

评论加载中...