Почему объекты должны быть иммутабельные?
Объекты делятся на изменяемые (мутабельные) и неизменяемые (иммутабельные) в зависимости от возможности изменения.
Объекты, которые не меняют своего внутреннего состояния после создания, неизменяемы. В противном случае они изменчивы.
Почему мы должны об этом думать? Это неполный список преимуществ неизменности:
- более легкая поддержка в будущем
- неизменяемые объекты проще в использовании
- неизменяемые объекты проще тестировать
- действительно неизменяемые объекты без побочных эффектов
- их намного проще кэшировать