Junior — Middle
Quais são as vantagens e desvantagens de usar objetos imutáveis na programação?
sobes.tech IA
Resposta da IA
Vantagens de objetos imutáveis:
- Segurança em multithreading: objetos imutáveis não mudam após serem criados, eliminando problemas de acesso concorrente.
- Facilidade de compreensão e depuração: o estado do objeto não muda, facilitando o rastreamento da lógica.
- Uso como chaves em coleções: objetos imutáveis podem ser usados em
HashMapouHashSetsem risco de alteração do hash. - Previsibilidade: ausência de efeitos colaterais ao trabalhar com objetos.
Desvantagens:
- Desempenho: ao precisar modificar um objeto, uma nova instância é criada, o que pode acarretar custos adicionais de memória e tempo.
- Complexidade em estruturas grandes: modificar dados aninhados requer criar cópias de todos os níveis.
Exemplo de uma classe imutável em Java:
public final class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Esta classe não pode ser modificada após sua criação, garantindo segurança e previsibilidade de comportamento.