Я нашел статью с интересным фрагментом кода:
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);
}
}
Мне действительно интересно узнать о преимуществах создания таких классов. Я понимаю, что здесь объект этого класса был бы неизменным, потому что нет возможности изменить его значения переменных после инициализации. Раньше я никогда ничего подобного не делал, и я действительно не понимаю его преимущества.
- Почему это хорошая практика?
- Не могли бы вы назвать ситуацию, когда этот подход можно использовать?
- Как насчет констант или переменных только для чтения? Разве это не очень похоже?
- В статье говорится, что это плохо для производительности приложения. Но почему?