DTO 命名规范指南

在项目实践中,将查询对象返回对象都使用 DTO 后缀是可以的,但通常有更清晰的命名规范,帮助区分两者的作用。

🚨 推荐的命名规范

  1. 请求数据(查询参数、请求体等) → 使用 Request / Query 后缀
  2. 返回数据(响应体、结果对象等) → 使用 DTO / Response 后缀

🟢 示例

查询对象(Request/Query)

  • UserQuery / UserRequest
  • OrderSearchRequest
  • ProductFilterDTO(少数场景下也可用 DTO

返回对象(DTO/Response)

  • UserDTO / UserResponse
  • OrderDetailDTO
  • ProductInfoDTO

🔎 示例代码

UserQuery(查询参数)

public class UserQuery {
    private String username;
    private String email;
    private Integer age;
    
    // getters and setters
}

UserDTO(返回对象)

public class UserDTO {
    private String username;
    private String email;
    private String roleName;

    public UserDTO(String username, String email, String roleName) {
        this.username = username;
        this.email = email;
        this.roleName = roleName;
    }

    // getters and setters
}

Controller 示例

@RestController
@RequestMapping("/api/users")
public class UserController {

    @GetMapping("/search")
    public ResponseEntity<List<UserDTO>> searchUsers(UserQuery query) {
        List<UserDTO> users = userService.findUsers(query);
        return ResponseEntity.ok(users);
    }
}

⚙️ 为什么区分更好?

可读性更强UserQuery 明确表示它是请求数据,UserDTO 表示它是响应数据。
维护性更好:在项目规模变大时,区分两者有助于快速定位和理解代码。
更符合开发习惯:例如 Spring BootMyBatis-PlusSwagger 等主流框架多推荐这种规范。

🧑‍💻 统一使用 DTO 后缀的变通方式

  • 查询对象 ➔ UserQueryDTO
  • 返回对象 ➔ UserResultDTO / UserDetailDTO

🚀 最佳实践是采用更具语义化的命名方式,如 Request / DTO / Response,让代码更易读、易维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值