Classes e Interfaces – Item 15

Minimize a mutabilidade das classes

Classes imutáveis contem uma serie de vantagens sobre as mutáveis. Objetos imutáveis são mais fácies para projetar, implementar, menos suscetíveis a erros, mais seguros, thread-safe (sem a necessidade de sincronização) e livres para compartilhamento global. A única desvantagem de um objeto imutável é a necessidade de criar uma nova instância a cada novo estado gerado. Isso em alguns casos pode ser custoso, ocasionando problemas de performance para a solução. Todas as classes de uma solução deveriam ser imutáveis a não ser que exista uma forte razão para não serem, necessitando ser mutáveis.

Para criar uma classe imutável:

  • Não crie os métodos get’s
  • Garanta que ela não possa ser estendida (classe final ou construtor privado),
  • Ter todos os atributos privados e finais e garanta que nenhuma outra classe possa mudar os valores das referências mutáveis que porventura essa classe imutável venha ter,
  • Faça cópias defensivas de todas as referências passadas no construtor ou parâmetros para dentro de um objeto imutável.
  • Retorne cópias defensivas dos objetos referenciados para fora da classe.

Para todas as informações, veja o post inicial.

“Ao SENHOR, o seu Deus, pertencem os céus e até os mais altos céus, a terra e tudo o que nela existe.” Deuteronômio 10:14

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s