我有一个基类 C
,其中包含字段 X
、Y
和 Z
。
C1
扩展了 C
并且有一个额外的字段 T
。
在 C1
构造函数中,我确实调用了 super (C
) 构造函数,并为字段 X
、Y
和 Z
。然后我设置 T
。
是否有任何模式可以通过在 C
构造函数中执行某些操作来自动验证 C1
的所有字段?所以我试图将自动验证推送到基类。
请注意,调用 super 构造函数应该在 C1
构造函数中的任何语句之前完成。我从一些抽象的 validate()
方法开始,但我不是在正确的轨道上。
谢谢。
最佳答案
原则上,C 不应该知道 C1 的属性,因为 C1 是 C 的特化。但是,您可以做的是在 C 中创建一个抽象的 validate() 方法,该方法必须由 C1 实现。然后,在C 的构造函数中,您可以调用抽象方法。由于 C1 必须实现 validate(),因此它可以在那里添加它的属性/字段验证。
关于Java - 子类验证设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9226060/