并发设计模式

不变性模式 immutability

所谓不变性就是对象一旦被创建之后, 状态就不在发生变化

快速实现不变性的类

将一个类所有的属性设置成 final 的, 并且只允许只读方法, 那么这个类基本上就具备不可变性了. 更严格的做法是这个类本身是 final.

不可变性类的修改可以通过创建一个新的不可变对象.问题是会产生过多对象.

利用享元模式避免创建重复对象

享元模式本质是其实就是一个对象池.

不可变模式的注意事项

  1. 对象的所有属性都是 final 的, 并不能保证不可变性.
  2. 不可变对象也需要正确的发布.

第一点, 因为 final 属性的类型是普通对象, 那么这个普通对象的属性也是可以修改的.

Copy - on - write 模式 写时复制

如果修改非常少, 数据量也不大, 对性能要求严苛的场景, 这个模式非常符合.