Un oggetto immutabile in programmazione , una volta che hai creato e inizializzato , non potrà mai cambiare il suo stato . Questo può sembrare controproducente, dal momento che il punto della programmazione è quello di manipolare i dati . Tuttavia, per la progettazione delle classi di eliminare i luoghi dove i loro dati possono cambiare , è possibile rimuovere intere categorie di potenziali problemi dal programma. In questo modo i dati sono sempre validi e le classi sono automaticamente thread-safe , e non dovete preoccuparvi di dimenticare per inizializzare i membri della tua classe . Cose che ti serviranno
ambiente di sviluppo integrato (IDE) come Eclipse o NetBeans
Show More Istruzioni
1
dichiarare la classe di finale :
MyClass { public final
...
}
Questo impedisce l'ereditarietà della classe, che può minare la sua immutabilità .
2
dichiarare i tuoi campi membro come finale :
...
private int Thenumber finale ;
private String theName finale ;
...
Ciò impone al compilatore di assicurare i campi membro non cambiano dopo l'inizializzazione
3
Inizializzare i campi membro del costruttore : .
MyClass pubblico (int Thenumber , String theName ) {
this.theNumber = Thenumber ;
this.theName = theName ;
}
4
Aggiungi ottenere metodi per consentire l'accesso ai campi :
...
int getTheNumber pubblico ( ) { Thenumber return; }
public String getTheName ( ) { theName return;}
5
Aggiungi logica di convalida al costruttore per garantire che crea correttamente il vostro oggetto . Ad esempio, se il codice prevede Thenumber di essere sempre compreso tra 0 e 100 , è possibile verificare che e genera un'eccezione ( opere IllegalArgumentException ) .
MyClass pubblico (int Thenumber , String theName ) {
< p > se ( Thenumber < =
this.theNumber = Thenumber ;
this.theName = theName ;
}
Questo passaggio consente di sapere ogni casi effettivi di classe sono validi .
6
Per evitare la noia di inizializzazione ogni campo nel costruttore di classi con un numero elevato di campi membro , refactoring in piccoli " oggetti parametro . " Creando più piccolo oggetti che contengono i dati necessari in gruppi logici , si riduce il numero di parametri nella firma del costruttore , pur mantenendo l'immutabilità .