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 ) { 
 
 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à . 
 
              
Programmazione © www.354353.com