假设我们在 AccountManager 类中有一个方法 deposit(Integer amount)。此方法会修改 accountTotal,因此不是幂等的。你如何使这个方法具有幂等性?
问问题
163 次
2 回答
0
根据用户输入更改某些内容的方法(如您的方法似乎所做的)不能成为幂等的。这意味着如果你调用deposit(10)
一百次,它和调用一次的效果相同,这没有任何意义。
于 2015-02-28T00:26:17.303 回答
0
通过传递您计划更改的状态的初始状态。您可以为每个修改提供一个唯一的 id,并传递您正在进行更改的状态的 id。由于每次更改后 id 都会增加(或以某种方式更改),因此针对旧 id 的后续更改请求将无济于事(因为对象不会处于具有该 id 的状态)。将此视为 CMS 中的一揽子“签入”操作。未更改的文件将不需要签入。并且在对确实更改的文件的更改进行初始签入后,随后的一揽子签入将不执行任何操作。
于 2017-04-20T02:16:07.640 回答