不变性的应用场景

在构造应用程序时管理的一个更难的事情是管理它的状态。 当应用程序可以异步执行代码时尤其如此。假如说你执行一些代码,但有些事情导致它等待(如HTTP请求或用户输入)。完成后,您会注意到它期望更改的状态,因为其他一段代码异步执行并更改其值。

小规模处理这种行为可能是好管理的,但是这可以显示在整个应用程序中,并且随着应用程序变得更大,更多的交互和更复杂的逻辑,可能会让你非常头痛。

不变性试图通过确保在代码的一部分中引用的任何对象不能被代码的另一部分改变来解决这个问题,除非它们能够直接重新绑定它。