gpt4 book ai didi

java - 通过几个简单标准进行验证的 validator 类 - 这是上帝对象吗?

转载 作者:行者123 更新时间:2023-11-30 03:18:26 26 4
gpt4 key购买 nike

我有一个 Java 类 validator 。它验证一些文件。这是伪代码:

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 行。你认为它是上帝对象还是其他一些难闻的类别?这是某种反模式吗?如果您认为需要重新设计 - 请告诉我如何设计。

最佳答案

我不会称其为神级,但我会称其违反 open-closed principle .

我发现的一个问题是该 validator 无法扩展。只有六个 Criteria,其大小是合理的;但是以后要添加Criteria,每次都必须增加这个类。此外,此 validator 无法在运行时更改其逻辑,例如跳过或重新排序其条件。

标准可以分为单独的 strategy类来解决所有这些问题。

关于java - 通过几个简单标准进行验证的 validator 类 - 这是上帝对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31948873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com