我有一个 Java 类验证器。它验证一些文件。这是伪代码:
public class Validator {
Collection<ValidationMessage> validationMessages;
class ValidationMessage {
}
enum MessageType {
}
public validate(lines) throws ValidationException {
for (line : lines) {
validateCriteriaA(line)
validateCriteriaB(line)
...
validateCriteriaF(line)
}
if (...)
throw new ValidationException();
}
private validateCriteriaA(Line line) {
if (...) {
validationMessages.add("criteria failed")
}
}
private validateCriteriaB(Line line)
private validateCriteriaC(Line line)
private validateCriteriaD(Line line)
private validateCriteriaE(Line line)
private validateCriteriaF(Line line)
private helperMethodX
private helperMethodY
private helperMethodZ
}
每个方法的行数不超过 15 行。此类的总长度约为 300 行。你认为它是上帝的对象还是其他一些难闻的类?它是某种反模式吗?如果您认为需要重新设计 - 请告诉我如何。