Idempotent en Java

Sheeraz Gul 12 octobre 2023
  1. Idempotent en Java
  2. Méthodes idempotentes en Java
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
Auteur: Sheeraz Gul
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