J bloch使用的“故障原子性”是什么?它对不可变对象有何好处?

J bloch使用的“故障原子性”是什么?它对不可变对象有何好处?,第1张

J bloch使用的“故障原子性”是什么?它对不可变对象有何好处?

Bloch的“失败原子性”表示,如果方法抛出异常,则该对象之后仍应可用。通常,对象应与调用该方法之前处于相同状态。

对于不可变对象,您可以简单地从它是不可变的事实中获得收益。没有可以更改对象状态的 *** 作。对象的所有方法都可以创建从原始对象派生的新对象。

例如,

String
有一个
substring(int)
方法。它不会更改原始字符串中的任何内容-
它会创建一个新对象,其内容是所需原始字符串部分的副本。如果抛出异常,那么您将不会获得新对象-
但原始String从未更改。内部没有
substring()
修改原始代码的代码
String
,因此它是故障原子的。

可变对象也可以获取失败原子性,但是您必须特别注意它,而在不可变对象中,它仅源于您将其设计为不可变的注意。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5500835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存