我一直在使用如下所示的创建请求,并且需要实现带有一些非必需字段的更新请求。
@Data
public class CreateRequest extends BaseRequest {
@NotEmpty
private String token;
@NotEmpty
private String secret;
}
@Data
public class UpdateRequest extends BaseRequest {
private String token;
private String secret;
}
有一些关系和接口应该被两个请求使用。我认为通过保留这些请求的共享字段来使用模板设计模式。这适合这个场景吗?或者,你有什么建议?
这可能是您在最佳方法上的想法,但我认为您最好的选择是在共享父类中拥有两种请求类型所需的任何字段/行为,并在子类中拥有它们的个人需求/不同字段。
我不确定你的可选字段在概念上是如何工作的,但如果它们是可选的,因为"default"值,那么你就可以让带有可选字段的类从带有必选字段的类扩展出来,并且只实现一个用默认值调用超级构造函数的构造函数。例如,如果subClass
扩展了parentClass
,父类的构造函数是两个字符串,其中第二个字符串有"default"在子类中,可以执行如下操作:
public subClass extends parentClass {
subClass(String arg1) {
super(arg1, "default arg2");
}
}