Зачем нужны неизменяемые объекты?

Здравствуйте.
Зачем нужен, например, DateTimeImmutable? Класс, в которой я могу загнать дату, а используя add или sub с ней ничего не произойдет. Мне интересно, скорее не как их использовать, а ситуации при которых они могут понадобиться.
Чтобы по коду ничего не могли сделать с датой, если очень захочется? А зачем код, который пытается это сделать с датой, с которой этого делать не надо. Много восторженных комментов нашел, но самих слов "зачем" не нашел.
Очень надеюсь на вашу помощь. Спасибо.
  • Вопрос задан
  • 693 просмотра
Пригласить эксперта
Ответы на вопрос 2
@kstyle
Комментировать
@immaculate
Программист-путешественник
Вам надо почитать статьи о функциональном программировании и языках функционального программирования (например, Lisp). Неизменяемость позволяет сократить количество ошибок в коде, так как состояние объекта не может быть внезапно изменено, например, в другом потоке, или другом вызове функции. Вы всегда знаете с чем работаете.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы