Java面向对象设计 - Java不可变对象
在创建状态后无法更改其状态的对象称为不可变对象。
一个对象不可变的类称为不可变类。
不变的对象可以由程序的不同区域共享而不用担心其状态改变。
不可变对象本质上是线程安全的。
例子
以下代码创建了不可变类的示例。
public class IntWrapper { private final int value; public IntWrapper(int value) { this.value = value; } public int getValue() { return value; } }
注意
这是如何创建IntWrapper类的对象:
IntWrapper wrapper = new IntWrapper(101);
在这一点上,包装器对象保持101,并且没有办法改变它。
因此,IntWrapper类是一个不可变的类,它的对象是不可变的对象。
最好将所有实例变量声明为final,这样Java编译器将在编译期间强制实现不可变性。