Sobes.tech
Middle

Por que podem ser necessários objetos imutáveis na prática?

sobes.tech IA

Resposta da IA

  • Segurança de thread: Objetos imutáveis são inerentemente seguros para threads, pois seu estado não pode ser alterado após a criação. Isso simplifica a programação paralela, evitando condições de corrida.
  • Simplicidade: O estado do objeto é fixo, o que reduz a complexidade do sistema e facilita o raciocínio sobre seu comportamento.
  • Caching: Como o objeto não muda, seu código hash permanece constante. Isso torna objetos imutáveis ideais como chaves em HashMap ou elementos em HashSet, aumentando a eficiência das operações com coleções.
  • Segurança: Ao retornar objetos imutáveis de métodos, pode-se garantir que o estado interno não será alterado acidentalmente ou maliciosamente por código externo.
  • Reutilização: Objetos imutáveis podem ser compartilhados com segurança por várias partes da aplicação sem a necessidade de criar cópias, economizando memória.

Exemplo de uma classe imutável em Java:

// Classe imutável
public final class Point {

    private final int x;
    private final int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    // Sem setters
    // Sem métodos que alterem o estado
}