软件的不可变:
软件架构应该具有一个稳定的抽象层或基础层。
稳定:抽象层或基础层的接口和对象间的依赖关系或协作关系应该保持稳定。
可变性:接口的具体实现可以不同,在接口不变的前提下。
根据开闭原则,应该是抽象层的接口和依赖关系保持稳定,对于实现的多样性保持开放。