我有两个有共同代码的类。伪代码:
现在只有具有特定验证的中间部分是不同的,并且每个类中的“周围”代码是相同的。
我怎样才能最好地改进此代码?创建一个抽象超类,提供两种方法来获取验证器和收集错误,然后在实现类中调用这些方法?
问题:这两个类都扩展了不同的遗留类,这就是为什么我不能在这里创建一个抽象的超类。
答案 0 :(得分:3)
组成怎么样?您不需要让类扩展遗留类,只需使它们成为验证器对象的成员。
class Validator extends AbstractValidator {
LegacyObject o;
@Override
void validate(){
//validate legacy class object
}
答案 1 :(得分:1)
您还可以编写一个小实用程序类,它提供"获取验证器"的实现。并且"收集错误"