gpt4 book ai didi

java - 好的做法 : valid property vs. isValid() 方法?

转载 作者:行者123 更新时间:2023-12-02 05:21:07 24 4
gpt4 key购买 nike

哪种方法检查蜜蜂有效性更好?第一个:

public class Order {
...
private boolean valid;

public boolean isValid() {
return valid;
}

public boolean setValid(boolean valid) {
this.valid = valid;
}

// getters, setters, etc.
}

其中 valid 在数据库中保留为 boolean 值,并由其他地方的 Java 代码设置,例如在 DAO 中。

或者第二个:

public class Order {
...


public boolean isValid() {
// some business code, e.g.:
return !orderItems.isEmpty();
}


// getters, setters, etc.
}

我们没有在数据库中保存有效值,但每次需要时都会根据需要计算它。

哪种方法更好?

最佳答案

在第一个示例中,您将“valid”视为 POJO 字段,即就像 getter()setter() 方法一样,只不过因为它是 boolean 值它是一个 isser() 方法。这没关系,因为我不会破坏这种类似 bean 的模式。 getter 和 setter 背后不应该有任何逻辑。

Insetad我会有另一种方法validate()来完成繁重的工作。

validate() 执行验证并设置有效变量。 isValid() 返回最后执行的验证。

我经常看到的一个反模式是 getXXXXX() 方法,该方法大约需要 30 秒才能完成,因为它正在执行计算和数据库命中,这会让此类的用户感到困惑,因为用户认为它是一个普通 POJO 类中的普通 getter。

关于java - 好的做法 : valid property vs. isValid() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510191/

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