【发布时间】:2020-12-14 17:08:47
【问题描述】:
假设我有一个包含许多字段的类 User:
public class User {
public Integer id;
public String name;
public String username;
public Integer age;
public Address address;
public String phoneNumber;
public String email;
}
但我并不总是需要前端的所有用户属性。每个屏幕只需要一些用户字段。为每个屏幕创建 DTO 类是否是一种好习惯,因为它们访问不同的属性?像这样:
class UserToScreenADTO implements Serializable {
public String name;
public String email;
}
class UserToScreenBDTO implements Serializable {
public String phoneNumber;
public Address address;
}
class UserToScreenCDTO implements Serializable {
public Integer id;
public String username;
public String email;
}
【问题讨论】:
-
您能否阐明“我并不总是需要所有字段...”是什么意思?表示是否由同一用户在同一前端使用?还是表示总是被不同的用户或不同的前端使用?
-
这将是抽象类的一个很好的用例。您需要在模型之间找到您的共同元素并创建一个 BaseUser,您的其他用户将从该基础用户扩展。
-
嗨,@Turing85。例如,Profile Screen 将访问姓名、电子邮件、电话号码和地址。但是,用户列表屏幕只能访问要在表格中显示的名称和用户名。在同一个前端,我可以有多个屏幕以不同的方式显示用户对象。
-
@shinjw 并使用给定的代码,您建议将哪些属性放入抽象类?
-
@Turing85,它就像一个用户管理系统,管理员用户可以看到一个包含用户名和用户电子邮件列表的屏幕,它可以单击一些用户名以打开一个新窗口有关所选用户的更多信息,例如姓名、地址、电话号码、年龄等...你明白了吗?
标签: java hibernate dto serializable