Java - 子类验证设计模式

标签 java validation design-patterns

我有一个基类 C,其中包含字段 XYZ

C1 扩展了 C 并且有一个额外的字段 T

C1 构造函数中,我确实调用了 super (C) 构造函数,并为字段 XYZ。然后我设置 T

是否有任何模式可以通过在 C 构造函数中执行某些操作来自动验证 C1 的所有字段?所以我试图将自动验证推送到基类。

请注意,调用 super 构造函数应该在 C1 构造函数中的任何语句之前完成。我从一些抽象的 validate() 方法开始,但我不是在正确的轨道上。

谢谢。

最佳答案

原则上,C 不应该知道 C1 的属性,因为 C1 是 C 的特化。但是,您可以做的是在 C 中创建一个抽象的 validate() 方法,该方法必须由 C1 实现。然后,在C 的构造函数中,您可以调用抽象方法。由于 C1 必须实现 validate(),因此它可以在那里添加它的属性/字段验证。

关于Java - 子类验证设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9226060/

相关文章:

java - Scala如何区分()=>T和=>T

java - spring webflux中Controller层错误处理错误

java - 在 java 中,您可以使用具有必填字段和可重新分配字段的构建器模式吗?

.net - 为什么在 Dispose() 方法中隐式提交工作单元不好?

java - 哪种 Java 设计模式最适合 if-else 语句(包括循环)?

java - 无法在抽屉导航 fragment 中包含 RecyclerView

java - JNI 与 Runtime.exec()

forms - Angular 2 : Apply remote validation errors to form

asp.net-mvc - 在 ActionFilterAttribute 中重复常见的错误信息逻辑

validation - VueJS : Is there an easy way to validate email and password on client side based on the server side's validator?