gpt4 book ai didi

java - 在 DTO 中将同一变量用于两个目的是不好的做法吗

转载 作者:行者123 更新时间:2023-12-01 18:01:54 25 4
gpt4 key购买 nike

@JsonRootName(value = "studentInfo")
@JsonInclude(value = Include.NON_EMPTY)
public class StudentInfo {
private String student;
@JsonProperty("address")
private String address;

@JsonProperty("studentName")
public String getStudent() {
return student;
}

@JsonProperty("studentUserId")
public void setStudent(String student) {
this.student = student;
}
public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}
}

这是我的 Student 类,我在与学生相关的 API 中使用此对象作为 DTO。在这里,我使用了 Student String 变量,当调用 POST/PUT/ API 并传递 StudentUserId 时,它将设置为 Student String 变量,但每当 StudentInfo 对象作为响应返回时然后实体将返回存储在用户表中的学生的实际姓名。

我只是想知道,我使用 Student String 变量和 @JsonProperty 的方式是正确的使用方式还是错误的做法?

最佳答案

不仅是 DTO 的规则,而且适用于所有类、程序和语言(基本上是在现实的非学术生活中),在编程时,每个变量和属性都有其自己的用途和仅用于此

如果您遵循此规则,您还将遵循以下约定:

  • 命名(每个变量都有一个描述性且唯一的名称)
  • 可读性(不仅是您,其他人也会看到并知道每个变量的用途)
  • 可维护性(当某些事情发生变化时-并且是的,它会发生变化-,您不需要划分或制定丑陋的解决方法来进行更改或解决问题)
  • 可测试性如果字段的语义取决于它所使用的上下文,那么为类编写测试就是一场噩梦。( @Fildor )

还有其他一些。无论如何,这只是约定而不是强制性规则,语法会令人困惑但正确,因此您可以使用它。我的建议是:不要! ;)

关于java - 在 DTO 中将同一变量用于两个目的是不好的做法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40303050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com