Элемент 13 в Эффективная Java (пункт 15 во втором издании) дает стратегии о том, как минимизировать изменчивость или способствовать неизменности.
Предположим, что мы удаляем мутаторы, но сохраняем неконечные поля иконструктор по умолчанию.Эффект будет теоретически изменяемым объектом, но практически неизменным.Да, можно изменить объект с помощью отражения с небольшим усилием, но просто закрыв открытые методы, мы можем, по крайней мере, препятствовать изменению объекта в таких случаях, когда практически невозможно сделать объект действительно неизменным.