Java 通过几个简单的标准进行验证的验证器类-这是上帝对象吗?
我有一个Java类验证程序。 它验证一些文件。这里是伪代码:Java 通过几个简单的标准进行验证的验证器类-这是上帝对象吗?,java,design-patterns,god-object,Java,Design Patterns,God Object,我有一个Java类验证程序。 它验证一些文件。这里是伪代码: public class Validator { Collection<ValidationMessage> validationMessages; class ValidationMessage { } enum MessageType { } public validate(lines) throws ValidationException { fo
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
}
公共类验证程序{
收集验证消息;
类验证消息{
}
枚举消息类型{
}
公共验证(行)抛出ValidationException{
用于(行:行){
validateCriteriaA(行)
validateCriteriaB(行)
...
validateCriteriaF(行)
}
如果(…)
抛出新的ValidationException();
}
私人验证中心(线路){
如果(…){
validationMessages.add(“标准失败”)
}
}
私人验证中心(线路)
专用validateCriteriaC(线路)
专用ValidateLiteriad(行)
私人验证中心(行)
私人验证中心(线路)
私人助手方法
私人助手方法
私人助理方法
}
每个方法不超过15行。这一类的总长度约为300行。
你认为它是神的东西还是其他难闻的东西?
这是某种反模式吗?如果您认为它需要重新设计,请告诉我如何设计。我不会称之为上帝类,但我会称之为违反规则 我看到的一个问题是,这个验证器无法扩展。只有六个标准,其规模是合理的;但要在将来添加标准,您必须每次增加该类。此外,该验证器不能在运行时更改其逻辑,例如跳过或重新排序其条件
标准可以分为单独的类来解决所有这些问题。这可能是一个更好的问题