Idempotent in Java

Sheeraz Gul 12 Oktober 2023
  1. Idempotent in Java
  2. Idempotente Methoden in Java
Idempotent in Java

Idempotent bedeutet, dass wir eine Operation mehrmals anwenden können, das Ergebnis jedoch immer dasselbe ist. Beispielsweise spielt es keine Rolle, wie oft wir eine idempotente Methode aufrufen; das Ergebnis wird immer dasselbe sein.

Dieses Tutorial demonstriert die Verwendung von idempotent in Java.

Idempotent in Java

Wie oben erwähnt, liefern die Idempotent-Methoden jedes Mal dieselben Ergebnisse. Beispiel: x=1; ist idempotent, weil es jedes Mal 1 zurückgibt, aber x++; kann nicht idempotent sein, da es mit jedem Aufruf die Ergebnisse verändert.

Wenn wir beispielsweise ein Objekt einmal schließen, haben wir jetzt nicht genügend Informationen, um zu wissen, ob das Objekt nach dem Schließen idempotent ist.

Um das zu überprüfen, müssen wir das Objekt ein zweites Mal schließen, und wenn es eine Ausnahme auslöst, bedeutet das, dass das Objekt nicht idempotent ist, und wenn es beim Schließen dieselben Ergebnisse zurückgibt, bedeutet das, dass das Objekt idempotent ist.

Versuchen wir, ein idempotentes closeable in Java zu implementieren.

package delftstack;

import java.io.Closeable;

public class Idempotent implements Closeable {
  private static boolean closed;

  public Idempotent() {
    closed = false;
  }
  public void close() {
    if (!Is_Closed()) {
      closed = true;
    }
  }

  public static boolean Is_Closed() {
    return closed;
  }
  public static void main(String args[]) {
    System.out.println(Is_Closed());
    System.out.println(Is_Closed());
  }
}

Closeable ist eine Klasse von java.io. Wir haben ein idempotentes closeable implementiert, indem wir einen booleschen Wert initialisiert und ihn in der Idempotent-Methode auf false gesetzt haben; es wird immer false zurückgegeben.

Ausgabe:

false
false

Idempotente Methoden in Java

Der Begriff der idempotenten Methoden entspricht den HTTP-Methoden. Die HTTP-Methode ist idempotent, wenn das Ergebnis für die Methode immer gleich ist, egal wie oft wir die Anfrage aufrufen.

Versuchen wir, die idempotenten HTTP-Methoden anhand des Beispiels zu verstehen.

Die GET-Anfrage: Egal wie oft wir eine GET-Anfrage stellen, wir erhalten immer die gleiche Antwort, wenn die Anfrage richtig implementiert wird.

Zum Beispiel stellen wir eine GET-Anfrage, um unsere Ergebnisse im System zu sehen. Es wird immer dasselbe sein, egal wie oft wir darum bitten.

Die HTTP-Methoden sind in zwei Typen unterteilt: Idempotent und Nicht-Idempotent. Die folgende Tabelle zeigt, welche HTTP-Methoden idempotent sind und welche nicht.

Methode Idempotent?
GET Ja
PUT Ja
POST Nein
DELETE Ja
HEAD Ja
OPTIONS Ja
PATCH Nein
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook