我有一个用例,我需要更新API的一些字段
例如:
如果API为UpdateStudentDetails
,则输入为:
Name
CGPA
Address
Hostel Name
此处我只想更新Name
一种方法是获取所有字段,然后更新Name
并使用所有字段调用UpdateStudentDetails
。在更新调用之前,它需要在客户端进行一次读取调用。
其他方式是:
1.询问客户需要更新的内容。在这种情况下,API签名可能如下所示:
Name
CGPA
Address
Hostel Name
StudentDetailsToUpdate
此处StudentDetailsToUpdate
是枚举列表,枚举可以包含NAME, CGPA, ADDRESS, HOSTEL_NAME
等值。
根据客户提供的枚举列表,我们可以更新各自的字段。
null
传递,那么客户端不希望更新它,如果Name
是non-null
,那么客户端想要更新。我无法在上述两种方法中找到重大的利弊,并寻求社区的指导。我有点倾向于第一种方法,因为我的意图很明确,而且我没有根据字段值做出决定,因为有些其他语言可能没有null的概念。
答案 0 :(得分:1)
我会选择第二种选择。
如果你选择第一个,你必须编写所有这些代码只是为了检查需要更新的参数。
选项3可能是一个不错的选择:)使用构建器模式(您可以轻松谷歌,因为它是一种广泛使用的模式)。这样,您可以链接所有需要更新的值,如果它们不为空,则更新它们。
你会得到像
这样的东西UpdateStudentDetails details = new UpdateStudentsBuilder().withName("Tony").withHostelName("Some nice hostel").build();