我发现一个article一个有趣的一段代码:Java不可变类?
public class Employee {
private String firstName;
private String lastName;
//private default constructor
private Employee(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public static Employee valueOf (String firstName, String lastName) {
return new Employee(firstName, lastName);
}
}
我理解产生这种课的优势真的很好奇。 我明白在这里,这个类的一个对象将是不可变的,因为一旦初始化就无法改变它的变量值。我从来没有做过这样的事情,我真的不明白它的优点。
- 为什么这是一个好的做法呢?
- 难道你的名字在那里可以使用这种方法的情况吗?
- 常数或只读变量呢?这不是很相似吗?
- 在文章中说,这是不利于应用程序的性能。 但为什么?
可变状态使得很难推断代码的作用。研究函数式编程。 –
该类没有访问器方法。这是故意的吗? –
有帮助的文章,如果你还没有阅读它:http://www.javapractices.com/topic/TopicAction.do?Id=29 –