Junior
O que são objetos imutáveis?
sobes.tech IA
Resposta da IA
Objetos imutáveis são objetos cujo estado não pode ser alterado após a criação. Qualquer operação que pareça modificar tal objeto, na verdade cria um novo objeto com um estado alterado.
Vantagens:
- Previsibilidade: O estado do objeto não muda inesperadamente.
- Segurança em múltiplas threads: Não há necessidade de bloqueios ao acessar de diferentes threads, pois não é possível alterar o estado.
- Facilidade de depuração: É mais fácil rastrear o estado do objeto durante a execução.
- Otimizações: Algumas operações podem ser armazenadas em cache, pois o resultado não mudará.
Exemplos em Dart/Flutter:
- Tipos primitivos:
int,double,bool,String. - Classes criadas usando a palavra-chave
const(para criar instâncias constantes, que são imutáveis) ou com camposfinal(para criar instâncias imutáveis após a inicialização).
// Exemplo de objeto String imutável
String name = "Flutter";
// A operação seguinte cria uma nova string, não altera 'name'
name = "Dart";
// Exemplo de classe imutável com campos final
class Point {
final int x;
final int y;
const Point(this.x, this.y);
}
// Criando uma instância imutável
const Point origin = Point(0, 0);
// origin.x = 5; // Erro de compilação - campo final não pode ser alterado