Immutable Objekte sind nach ihrer Instanzierung unveränderbar.
Die Membervariablen werden im Konstruktor oder beim Initialisieren gesetzt und danach nur noch lesend verwendet.
Wichtige Designmerkmale
- Alle Membervariablen sind private
- Schreibender Zugriff auf Membervariablen nur im Konstruktor/Initialisierer
- Lesende Zugriffe verboten, wenn Membervariable ein veränderliches Objekt oder Array ist
- Veränderliche Objekte/Arrays, die im Konstruktor übergeben werden, müssen vor der Zuweisung an Membervariablen kopiert werden
Beispiel
Immutable.java
public final class Immutable
{
private int v1;
public Immutable
(int v1,
String[] v2
) {
this.v1 = v1;
// Arrays vor der Zuweisung kopieren!
this.
v2 =
(String[]) v2.
clone();
}
public int getIntValue() {
return v1;
}
public String getStringValue
(int index
) {
return v2[index];
}
}
Verwandte Links