我有一个基本抽象类,它在构造函数中调用私有验证方法。对于其后代的一部分,我想跳过这个检查。这个类有太多的用法,我不能从基类中移动验证。
哪个是更好的解决方案
(还将赞赏任何其他更好的解决方案)
答案 0 :(得分:1)
如果这个考虑仅适用于本课程,我会选择第二种方法。如果在更多的类中会出现这种情况,那么它将代表一些独立于类的行为,我会选择第一个选项(然后你也可以在多数情况下使用多态,你只想使用没有检查的类)。 / p>
答案 1 :(得分:0)
public abstract class BaseClass {
public BaseClass(bool? validate = true) {
if (validate.HasValue && validate.Value) {
Validate();
}
}
private void Validate() { }
}
public class ChildClass1 : BaseClass {
public ChildClass1() : base() { }
}
public class ChildClass2 : BaseClass {
public ChildClass2() : base(false) { }
}