Ein unveränderliches Objekt in der Programmierung, wenn Sie erstellt und habe es initialisiert wurde, kann nie ihren Zustand ändern . Dies mag kontraproduktiv, da der Punkt der Programmierung ist es, Daten zu manipulieren. Doch durch die Gestaltung Ihrer Klassen an Orte, wo ihre Daten ändern können vermeiden, können Sie ganze Kategorien von möglichen Problemen aus dem Programm zu entfernen. Dies gewährleistet die Daten immer gültig und Ihre Klassen sind automatisch Thread-sicher, und Sie müssen nicht zu vergessen die Mitglieder Ihrer Klasse zu initialisieren kümmern. Things You
Integrierte Entwicklungsumgebung ( IDE) wie Eclipse oder NetBeans
brauchen anzeigen Weitere Anweisungen
1
Erklären Sie Ihre Klasse als final:
public final class MyClass {
...
}
Dies verhindert Vererbung von der Klasse , die ihre Unveränderlichkeit untergraben können .
2
erklären Sie Ihre Mitglied Felder als final:
...
privaten final int theNumber ;
privaten final String theName ;
...
Zwingt den Compiler , um sicherzustellen, die Mitglied Felder nicht nach der Initialisierung ändern
3
initialisieren Mitglied Felder im Konstruktor : .
public MyClass (int theNumber , String theName ) {
this.theNumber = theNumber ;
this.theName = theName ;
}
4
hinzufügen get-Methoden zu Zugang zu den Bereichen :
...
public int getTheNumber () {return theNumber ;}
public String getTheName () {return theName ;}
5
hinzufügen Validierungslogik an den Konstruktor , um sicherzustellen, sie schafft das Objekt korrekt . Zum Beispiel , wenn Ihr Code erwartet theNumber immer zwischen 0 und 100 liegen , können Sie überprüfen, ob und werfen eine Ausnahme ( IllegalArgumentException Werke) .
Public MyClass (int theNumber , String theName ) {
< p > if ( theNumber <=
this.theNumber = theNumber ;
this.theName = theName ;
}
Dieser Schritt hilft Ihnen wissen, jeder tatsächlichen Instanzen Ihrer Klasse gültig sind.
6
Um die Langeweile der Initialisierung jedes Feld im Konstruktor der Klassen mit einer großen Anzahl von Feldern Mitglied , Refactoring in kleinere vermeiden " Parameter-Objekte . " Durch die Schaffung kleiner Objekte, die die benötigten Daten in logischen Gruppen , reduzieren Sie die Anzahl der Parameter in Ihrem Konstruktor Unterschrift unter Beibehaltung Unveränderlichkeit enthalten .