O que é um objeto imutável?

Na programação orientada a objetos, um objeto imutável é um objeto cujas propriedades não podem ser alteradas após a criação. A maioria dos objetos, por outro lado, são objetos mutáveis, o que significa que algumas ou todas as suas propriedades podem ser alteradas livremente após a criação. Uma variedade de linguagens de computador tem a capacidade de criar objetos imutáveis, incluindo Java, C ++, Erlang, TCL e Scala. A metodologia para criar uma classe imutável varia dependendo da linguagem do computador usada. Independentemente do idioma, uma classe imutável não deve ter métodos que possam alterar seus dados internos e não sermos alterados para os métodos - ou seja, substituir ou sobrecarregar - de uma maneira que mudaria seus dados internos. Esta é a mais complicada das duas abordagens. Para criar um objeto imutável de um outro mundoSe objeto mutável, por outro lado, geralmente pode aplicar uma palavra -chave para designar o objeto como imutável.

Como exemplo, a criação imutável de objetos em Java depende muito da palavra -chave "final". Uma maneira rápida de tornar uma aula imutável em Java é declarar a classe, bem como todos os seus métodos e membros de dados, final. Uma estratégia semelhante também pode ser usada em C ++ com a palavra -chave "const". Essas abordagens, dependendo do conteúdo da classe, podem não ser as melhores, no entanto. Em geral, os objetos geralmente podem ser imutáveis ​​pela manutenção cuidadosa de seus dados internos.

Fazer um objeto imutável usando uma palavra -chave, como no exemplo acima, geralmente é muito mais fácil do que escrever uma classe inteira para ser imutável. Usar essa abordagem, no entanto, tem seus perigos. Ao designar explicitamente um objeto imutável dessa maneira, é importante para o programador ter certeza de que todas as propriedades apropriadase os dados foram incorporados primeiro ao objeto. Confiar em um objeto incompleto pode ser perigoso, principalmente se estiver faltando uma informação essencial.

Se um objeto for mutável, mas exigir que dados imutáveis ​​sejam criados corretamente, os dados imutáveis ​​devem ser inicializados antes que o objeto mutável possa ser feito. Objetos imutáveis ​​são sempre imutáveis, sejam eles valores de dados ou objetos grandes e devem sempre ser tratados como tal. Em geral, um objeto imutável não pode ser mutável após ter sido criado, embora às vezes eles possam ser copiados como objetos mutáveis. Geralmente, pode -se supor que um objeto imutável e qualquer de suas cópias também sejam imutáveis, o que pode impedir dados ou problemas de memória.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?