我有一个使用主键存储在数据库中的 Java 对象用户。例如:
id | login | name | surname
---------------------------
0 | admin | Bob | Marley
1 | ..... | .... | ......
我的应用程序的 Java 客户端可以调用 、 和其他 APIaddUser
操作getUserById
。editUser
每个这样的请求都组成一个 Java 对象,例如:
class EditRequest {
User newUserProfile;
}
我在为这些操作定义模型时遇到了问题:我应该对所有操作使用一个User
具有四个字段id
、log
、name
和的对象,surname
还是应该将它们分隔为User
and UserValue
,其中第二个对象包含除 ID 之外的所有字段。第二个对象不包含 ID 的原因是它旨在用于addUser
除了 ID 之外的所有字段都从客户端传递的操作,因为 ID 是为服务器端的新用户生成的。这种分离将允许我UserValue
在客户端上构造一个对象,而不是例如创建一个User
带有空 ID 字段。第三种解决方法是始终将 User 和 ID 分开,并在必要时使用 Map 将它们绑定在一起。什么是最好的选择?