您提到的示例是不可变对象。它在编程语言中被广泛使用的概念。
从上面的链接报价。优点是
- 易于构建,测试和使用
- 自动是线程安全的,没有同步问题
- 不需要复制构造函数
- 不需要克隆的实现
- 允许hashCode使用延迟初始化,并缓存其返回值
- 用作字段时不需要防御性地复制
- 制作好Map键和Set元素(这些对象在集合中时不得更改状态)
- 在构造时就建立了其类不变式,因此不再需要检查
- 总是具有“失败原子性”(约书亚·布洛赫(Joshua Bloch)使用的术语):如果一个不可变的对象-引发异常,则它永远不会处于不希望的状态或不确定的状态
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)