如何使用通用代码改进类?

时间:2013-11-28 10:02:33

标签: java optimization

我有两个有共同代码的类。伪代码:

  • 选择验证器
  • 应用特定于类的验证(一个可能验证地址,另一个可能是付款)
  • 从验证中收集错误并提供用户反馈

现在只有具有特定验证的中间部分是不同的,并且每个类中的“周围”代码是相同的。

我怎样才能最好地改进此代码?创建一个抽象超类,提供两种方法来获取验证器和收集错误,然后在实现类中调用这些方法?

问题:这两个类都扩展了不同的遗留类,这就是为什么我不能在这里创建一个抽象的超类。

2 个答案:

答案 0 :(得分:3)

组成怎么样?您不需要让类扩展遗留类,只需使它们成为验证器对象的成员。

class Validator extends AbstractValidator {

LegacyObject o;

@Override
void validate(){
 //validate legacy class object
} 

答案 1 :(得分:1)

您还可以编写一个小实用程序类,它提供"获取验证器"的实现。并且"收集错误"