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 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