概念
immutable模式:想破坏也破坏不了,确保实例状态不会发生改变。
实现
主要是对类加上关键字final表示该类不可被继承以防止子类修改其字段值,对类中的属性也用final修饰,是字段值只能被赋值一次,不要给该类的字段提供setter方法。
何时使用
- 实例创建后状态不再发生变化
- 实例是共享的,且被频繁访问
Java标准类库中用到immutable模式
- java.lang.String
- java.math.BigInteger 和 java.math.BigDecimal。(BigInterger表示所有精度的整数,BigDecimal表示所有精度的数)
- java.util.regex.Pattern 正则表达式
- java.lang.Integer等基本类型的包装类
- java.awt.Color