Java 如何命名计算属性?
我正在寻找一些常见的约定——如果有的话——来命名“计算”属性。所谓“计算”是指通过调用特定方法来设置它们的值。通常,这些属性不会在构造函数中显示为参数,尽管它们可能在构造函数中初始化 以下是一个计算年龄的班级人员示例:Java 如何命名计算属性?,java,attributes,coding-style,Java,Attributes,Coding Style,我正在寻找一些常见的约定——如果有的话——来命名“计算”属性。所谓“计算”是指通过调用特定方法来设置它们的值。通常,这些属性不会在构造函数中显示为参数,尽管它们可能在构造函数中初始化 以下是一个计算年龄的班级人员示例: public class Person { Date birthday; int age; Person (Date birthday) { this.birthday = birthday; age = new Date(new
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方法,如在您的示例中为不应更改的人的brithday)派生属性只有getter,因此从外部看不到属性的基本性质,这也是正确的OO设计。内部机制对外部世界是看不见的 在性能优化过程中,可能会决定将派生值实际存储在对象内部的变量中,而不是在调用getter时始终进行计算 当派生属性存储在私有变量中时,被调用的源属性之一的setter也应该更新这些派生属性
如果使用Bean机制发送属性更改事件,请记住,当您更改一个源属性时,也要触发派生属性的属性更改事件。在正确的面向对象设计中,对象具有属性,在稍后的阶段,这些属性被标识为“实”属性或“派生”属性 在开发过程中,“真实”属性通常使用getter和setter方法编码为属性(如果它是只读属性,则仅使用getter方法,如在您的示例中为不应更改的人的brithday)派生属性只有getter,因此从外部看不到属性的基本性质,这也是正确的OO设计。内部机制对外部世界是看不见的 在性能优化过程中,可能会决定将派生值实际存储在对象内部的变量中,而不是在调用getter时始终进行计算 当派生属性存储在私有变量中时,被调用的源属性之一的setter也应该更新这些派生属性
如果您使用Bean机制发送属性更改事件,请记住在更改一个源属性时也要触发派生属性的属性更改事件。举个例子,我不明白您的意思。此外,这可能是非常基于意见的。刚刚编辑过,我也对注释标记表示此类属性感兴趣。它们通常被称为瞬态属性。您希望有什么样的约定?看起来不错,我不确定它的
age
名称是否应该不同。可能是派生值?举个例子,我不明白你的意思。此外,这可能是非常基于意见的。刚刚编辑过,我也对注释标记表示此类属性感兴趣。它们通常被称为瞬态属性。您希望有什么样的约定?看起来很不错,我不确定它的age
名称是否应该不同。可能是派生值?