Um objeto imutável na programação , uma vez que você tenha criado e inicializado ele , nunca pode mudar o seu estado. Isto pode parecer contraproducente, pois o ponto da programação é para manipular dados . No entanto, através da concepção de suas classes para eliminar locais onde seus dados podem mudar , você pode remover categorias inteiras de problemas potenciais de seu programa. Isso garante que os dados são sempre válidos e suas classes são automaticamente thread-safe, e você não tem que se preocupar em para inicializar os membros de sua classe. Coisas que você precisa
ambiente de desenvolvimento integrado ( IDE) como Eclipse ou NetBeans
Show Mais instruções
1
Declare sua classe como final :
MyClass público classe final {
...
}
Isso evita que a herança de sua classe , o que pode prejudicar a sua imutabilidade .
2
Declare seus campos de membro como final :
...
privado oNumero int final;
private final String theName ;
...
Isso força o compilador para garantir que os campos de membro não mudam após a inicialização
3
inicializar os campos membros do construtor: .
MyClass pública (int oNumero , String theName ) {
this.theNumber = oNumero ;
this.theName = theName ;
}
4
Adicione obter métodos para permitir o acesso aos campos :
...
public int getTheNumber () {return oNumero ;}
getTheName public String () {return theName ;}
5
Adicione lógica de validação para o construtor para assegurar que cria o objeto corretamente. Por exemplo, se o seu código espera oNumero estar sempre entre 0 e 100 , você pode conferir isso e lançar uma exceção ( IllegalArgumentException funciona).
MyClass pública (int oNumero , String theName ) {
if ( oNumero < =
this.theNumber = oNumero ;
this.theName = theName ;
}
Este passo ajuda você conhece algum casos reais de sua classe são válidos.
6
Para evitar o tédio de inicializar todos os campos no construtor de classes com um grande número de campos de membro , refatorar em pequenos "objetos de parâmetro. " Ao criar menor objetos que contêm os dados que você precisa em grupos lógicos , você reduz o número de parâmetros na assinatura do seu construtor , mantendo a imutabilidade.