gpt4 book ai didi

java - 执行附加逻辑的 getter 和 setter

转载 作者:IT老高 更新时间:2023-10-28 20:41:28 25 4
gpt4 key购买 nike

我有一个 Java 类,它表示两个元素之间的相关性(典型的 POJO):

public class Correlation {

private final String a;
private final String b;

private double correlation;

public Correlation(String a, String b) {
this.a = a;
this.b = b;
}

public double getCorrelation() {
return correlation;
}

public void setCorrelation(double correlation) {
this.correlation = correlation;
}

}

要遵循正确的相关逻辑,如果 a 等于 b,则相关值应始终为 1。我可以添加改变 getter 方法的逻辑(忽略 a 可能的 null 值的事实):

public double getCorrelation() {
if (a.equals(b)) {
return 1D;
} else {
return correlation;
}
}

困扰我的是将这个逻辑添加到 getter 方法中,我应该更改方法名称还是记录它应该足够考虑?

最佳答案

早在早期,Java getter/setter 对就被用来识别 beansproperties,目的是为了能够定义通过计算实现的概念属性而不是一个普通的成员变量。

不幸的是,随着时间的流逝,程序员越来越依赖 getter/setter 作为底层属性的访问器/修改器,这种趋势在引入术语 POJO 识别只有 getter 和可能的 setter 作为方法的对象。

另一方面,将执行计算的对象与仅携带数据的对象区分开来是一件好事。我想您应该决定要实现哪种类型的类。在你的位置,我可能会将相关性作为一个额外的构造函数参数并在那里检查它的有效性,而不是在你的 getter 中。您的 Correlation 不能是计算对象,因为它没有足够的信息来执行任何计算。

关于java - 执行附加逻辑的 getter 和 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7955319/

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