Immutable

Unter Immutable werden Objekte / Objektkompositionen verstanden, die nach ihrer Erzeugung nicht mehr verändert werden können. Alle Attributwerte werden bei der Erzeugung bestimmt und im nachhinein nicht mehr verändert.

Ein prominenter Java Vertreter des Immutable-Patterns ist die Klasse java.lang.String

Die Anwendung des Immutable-Patterns in der Programmiersprache Java ist relativ einfach. Zunächst sollten alle Attribute als private und wenn möglich als final deklariert werden. Die Wertzuweisungen sollten wenn möglich im Konstruktor gemacht werden. Weiterhin werden für die Attribute nur die getter-Methoden und keine setter-Methoden definiert.

Um zu Verhindern, dass in abgeleiteten Klassen Werte veränderbar gemacht werden, sollte die Klasse zusätzlich als final deklariert werden (was eine Erweiterung verhindert).

Das nachfolgende Beispiel MyImmutable1.java zeigt beispielhaft die Anwendung des Immutable-Patterns in der Programmiersprache Java.

  public final class MyImmutable1 {
    private final int intValue;
    private final double doubleValue;
    private final double doubleValue2;
    private final Object anObject;
   
    public MyImmutable1(int intValue, double doubleValue, Object anObject){
      this.intValue = intValue;
      this.doubleValue = doubleValue;
      this.anObject = anObject;    
      doubleValue2 = intValue*doubleValue;
    }
   
    public final int getIntValue(){
      return intValue;
    }
   
    public final double getDoubleValue(){
      return doubleValue;
    }
   
    public final double getDoubleValue2(){
      return doubleValue2;
    }
   
    public final Object getAnObject(){
      return anObject;
    }
  }
  
itmapa.de - X2H V 0.17