Idempotente en Java
Idempotente significa que podemos aplicar una operación varias veces, pero el resultado es siempre el mismo. Por ejemplo, no importa con qué frecuencia llamemos a un método idempotente; el resultado siempre será el mismo.
Este tutorial demuestra el uso de idempotente en Java.
Idempotente en Java
Como se mencionó anteriormente, los métodos idempotentes devuelven los mismos resultados cada vez. Por ejemplo, x=1;
es idempotente porque devuelve 1
cada vez, pero x++;
no puede ser idempotente porque, con cada llamada, cambia los resultados.
Por ejemplo, si cerramos un objeto una vez, ahora no tenemos suficiente información para saber si el objeto es idempotente después del cierre.
Para verificar eso, necesitamos cerrar el objeto por segunda vez, y si arroja una excepción, eso significa que el objeto no es idempotente, y si devuelve los mismos resultados al cerrar, eso significa que el objeto es idempotente.
Intentemos implementar un idempotente cerrable
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
es una clase de java.io
. Implementamos un closeable
idempotente al inicializar un valor booleano y establecerlo en false
en el método idempotente; siempre devolverá false
.
Producción :
false
false
Métodos idempotentes en Java
El término de métodos idempotentes corresponde a los métodos HTTP. El método HTTP es idempotente cuando el resultado del método es siempre el mismo sin importar cuántas veces llamemos a la solicitud.
Tratemos de entender los métodos HTTP idempotentes con el ejemplo.
La solicitud GET
: No importa cuántas veces hagamos una solicitud GET
, siempre obtendremos la misma respuesta si la solicitud se implementa correctamente.
Por ejemplo, hacemos una solicitud GET
para ver nuestros resultados en el sistema. Siempre será lo mismo por muchas veces que lo solicitemos.
Los métodos HTTP se dividen en dos tipos, uno es idempotente y el otro es no idempotente. La siguiente tabla muestra qué métodos HTTP son idempotentes y cuáles no.
Método | ¿Idempotente? |
---|---|
GET |
Sí |
PUT |
Sí |
POST |
No |
DELETE |
Sí |
HEAD |
Sí |
OPTIONS |
Sí |
PATCH |
No |
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