StudentDTO类具有大约20个字符串属性,每个类都需要根据以下注释中给出的逻辑来验证是否强制性。这将使更新方法冗长,否则将过多。异常消息应基于属性评估而更改。这段代码使用Java 11。
<code grabbed using "Get Specified Text" followed by a
Variable
. And now some more text and another
Variable
.>
答案 0 :(得分:1)
似乎您正在验证对象。
我不会分享任何代码示例,我只会分享设计意见。顺便说一下,在设计应用程序时,您应该遵循设计原则。因此SOLID design principles是普遍接受的,您可以在设计应用程序时将这些原理应用于您的应用程序。
您可以创建一个类似#DATA
set.seed(122)
df1 = data.frame(id = rep(1:3, each = 3),
partcipant = paste0("s", 1:9),
stringsAsFactors = FALSE)
do.call(rbind,
lapply(split(df1$partcipant, df1$id), function(x)
data.frame(from = x[1], to = x[-1], stringsAsFactors = FALSE)))
# from to
#1.1 s1 s2
#1.2 s1 s3
#2.1 s4 s5
#2.2 s4 s6
#3.1 s7 s8
#3.2 s7 s9
的类,因此它的工作必须仅是验证StudentValidator
对象。这样您就实现了Solid的单一责任的首要原则。
该StudentValidator类还将具有您需要进行验证的方法。在完成所有这些实现之后,您可以为每种验证提供一个方法,也可以在需要时调用它们。
还有许多设计模式可以通过实现模式来避免Student
语句。像命令模式,使用枚举等。
答案 1 :(得分:0)
我强烈建议使用Java环境JSR 303 Bean验证。javax.validation包为开发人员提供了标准化的方式。必须满足某些条件的字段会收到相应的注释,例如@NotNull,然后由框架对其进行评估。自然,为了检查更具体的条件,可以创建自定义注释和验证器。
您可以参考此https://dzone.com/articles/bean-validation-made-simple。