Imutabilidade¶
Definição¶
Um objeto imutável não muda após ser criado; qualquer alteração gera nova instância.
Por que isso importa¶
Reduz bugs de concorrência e torna o fluxo de dados previsível, especialmente em processamento assíncrono.
Exemplo de código¶
record Usuario(String id, String nome) {}
Usuario u1 = new Usuario("1", "Ana");
Usuario u2 = new Usuario(u1.id(), "Ana Souza");
Modelo mental¶
Dados imutáveis podem ser compartilhados com segurança entre threads e funções sem medo de modificação acidental.
Erros comuns¶
- Modificar estado global em muitos lugares.
- Criar objetos quase-imutáveis com campos mutáveis internos.
- Ignorar custo de cópia em estruturas grandes sem estratégia.