哲学上说变与不变,讲的是绝对运动与相对静止的道理,在代码设计中,也有许多变和不变之间的辩证故事。
有一些类在创建以后,整个生命周期内都不会发生变化,这种模式被称为 Immutable Pattern。
较弱的不变模式:指的是一个类的实例状态是不可变化的,但是这个类的引用的实例却可以变化。
比如说:Visitor 模式常常是这样的,整个流程是不可变的,但是我为我的整个流程提供灵活的切入点,提供出来访问接口,供变化的部分完成。
较强的不变模式:一个类实例状态不可变,其内部引用的所有实例也不可变。
这个就比较多了,JDK 中的 String、Integer、Byte 等都是不可变的。
&nbs
[……]阅读全文