很明显,不可变性增加了可重用性,因为它在每次状态更改时都会创建新对象。有人能告诉我一个我们需要不可变类的实际场景吗?
最佳答案
考虑 java.lang.String
。如果它不是不可变的,那么每次您想要确信一个字符串不会在您的下面发生更改时,您就必须创建一个副本。
另一个例子是集合:能够接受或返回一个真正不可变的集合(例如来自 Guava - 不仅仅是一个可变集合的不可变 View )并且确信它不会被改变是很好的。
我不知道这些是否算作“需要”,但我不想在没有它们的情况下进行开发。
关于java - 不可变类的实际例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203419/