gpt4 book ai didi

java - 如何命名计算属性?

转载 作者:行者123 更新时间:2023-12-01 18:44:14 26 4
gpt4 key购买 nike

我正在寻找一些常见的约定(如果有的话)来在“计算”属性时命名它们。我所说的“计算”是指它们的值是通过调用特定方法来设置的。通常,此类属性不会作为参数出现在构造函数中,尽管它们可能会在构造函数中进行初始化。

下面是一个 Person 类的示例,其中将计算年龄:

public class Person {

Date birthday;
int age;

Person (Date birthday) {
this.birthday = birthday;
age = new Date(new Date().getTime() - birthday.getTime()).getYear();
}
}

最佳答案

在正确的面向对象设计中,对象具有属性,在稍后阶段,属性被标识为“真实”属性或“派生”属性。

在开发过程中,“真实”属性通常被编码为具有 getter 和 setter 方法的属性(或者如果它是只读属性,则只是一个 getter 方法,例如您的示例中不应该出现的人的生日)更改)并且派生属性只有 setter/getter ,因此从外部看不到属性的基本性质,这又是正确的面向对象设计。内部机制对外界是不可见的。

在性能优化期间,人们可能会决定将派生值实际存储在对象内部的变量中,而不是在调用 getter 时始终进行计算。

当派生属性存储在私有(private)变量中时,被调用的源属性之一的 setter 也应该更新派生属性。

如果您使用 Bean 机制发送属性更改事件,请记住在更改源属性之一时还要触发派生属性的属性更改事件

关于java - 如何命名计算属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18535171/

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