我无法得到我们需要一个不可变类的场景.
你有没有遇到过这样的要求?或者你可以给我们任何一个我们应该使用这种模式的真实例子.
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);
}
}
Run Code Online (Sandbox Code Playgroud)
我非常好奇理解创建这种类的优势.我知道这个类的对象是不可变的,因为初始化后无法更改其变量值.我之前从未做过这样的事情,我真的不明白它的优点.
我今天读了一章Effective Java.本章是关于最小化对象的可变性.我非常理解为什么不可变对象是好的,比如线程安全,简单等等.我的问题是因为不可变对象有很多优点,是否有任何可变对象首选的情况?