Java 中的幂等
幂等意味着我们可以多次应用一个操作,但结果总是相同的。例如,我们调用幂等方法的频率无关紧要。结果总是一样的。
本教程演示了在 Java 中使用幂等性。
Java 中的幂等
如上所述,幂等方法每次都返回相同的结果。例如,x=1;
是幂等的,因为它每次都返回 1
,但是 x++;
不能是幂等的,因为每次调用都会改变结果。
例如,如果我们关闭一个对象一次,那么现在我们没有足够的信息来知道该对象在关闭后是否是幂等的。
为了检查这一点,我们需要再次关闭该对象,如果它抛出异常,则表示该对象不是幂等的,如果在关闭时返回相同的结果,则表示该对象是幂等的。
让我们尝试在 Java 中实现一个幂等的 closeable
。
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
是 java.io
的一个类。我们通过初始化一个布尔值并在 Idempotent 方法中将其设置为 false
来实现一个幂等的 closeable
;它总是会返回 false
。
见输出:
false
false
Java 中的幂等方法
幂等方法术语对应于 HTTP 方法。HTTP 方法是幂等的,即无论我们调用多少次请求,方法的结果始终相同。
让我们尝试通过示例了解幂等 HTTP 方法。
GET
请求:无论我们发出多少次 GET
请求,如果请求执行正确,我们将始终得到相同的响应。
例如,我们发出 GET
请求以在系统中查看我们的结果。无论我们请求多少次,它总是一样的。
HTTP 方法分为两种类型,一种是 Idempotent,另一种是 Non-Idempotent。下表演示了哪些 HTTP 方法是幂等的,哪些不是。
方法 | 是否是幂等的 |
---|---|
GET |
是的 |
PUT |
是的 |
POST |
不 |
DELETE |
是的 |
HEAD |
是的 |
OPTIONS |
是的 |
PATCH |
不 |
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。