Idempotent en Java
Idempotent signifie que nous pouvons appliquer une opération plusieurs fois, mais le résultat est toujours le même. Par exemple, peu importe la fréquence à laquelle nous appelons une méthode idempotente ; le résultat sera toujours le même.
Ce didacticiel illustre l’utilisation de l’idempotent en Java.
Idempotent en Java
Comme mentionné ci-dessus, les méthodes idempotentes renvoient les mêmes résultats à chaque fois. Par exemple, x=1;
est idempotent car il retourne 1
à chaque fois, mais x++;
ne peut pas être idempotent car, à chaque appel, il modifie les résultats.
Par exemple, si nous fermons un objet une fois, nous n’avons plus assez d’informations pour savoir si l’objet est idempotent après la fermeture.
Pour vérifier cela, nous devons fermer l’objet une deuxième fois, et s’il lève une exception, cela signifie que l’objet n’est pas idempotent, et s’il renvoie les mêmes résultats à la fermeture, cela signifie que l’objet est idempotent.
Essayons d’implémenter un fermable
idempotent en Java.
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
est une classe de java.io
. Nous avons implémenté un “fermable” idempotent en initialisant un booléen et en le définissant sur false
dans la méthode Idempotent ; il retournera toujours false
.
Production:
false
false
Méthodes idempotentes en Java
Le terme de méthodes idempotentes correspond aux méthodes HTTP. La méthode HTTP est Idempotente lorsque le résultat de la méthode est toujours le même, quel que soit le nombre de fois que nous appelons la requête.
Essayons de comprendre les méthodes HTTP idempotentes avec l’exemple.
La requête GET
: Peu importe le nombre de fois que nous faisons une requête GET
, nous obtiendrons toujours la même réponse si la requête est correctement implémentée.
Par exemple, nous faisons une requête GET
pour voir nos résultats dans le système. Ce sera toujours le même peu importe le nombre de fois que nous le demanderons.
Les méthodes HTTP sont divisées en deux types, l’un est idempotent et l’autre est non idempotent. Le tableau ci-dessous montre quelles méthodes HTTP sont idempotentes et lesquelles ne le sont pas.
Méthode | Idempotent ? |
---|---|
GET |
Oui |
PUT |
Oui |
POST |
Non |
DELETE |
Oui |
HEAD |
Oui |
OPTIONS |
Oui |
PATCH |
Non |
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