
状态不是一个系统此刻所有细节的完整照片,而是为了判断下一步,需要在当前保留的一组变量。
一部电梯要决定继续上行、停靠还是开门,通常需要知道所在楼层、运行方向、门是否关闭以及尚未响应的呼叫。乘客五分钟前怎样走进电梯,多半不再影响下一步;若故障次数会触发检修,它就必须被纳入状态。什么算状态,因此取决于系统将怎样转换,而不只取决于眼前能看见什么。
状态不同于历史记录:历史保存发生过什么,状态只保留未来仍依赖的部分。它也不同于静态描述,因为状态的意义正在于它能进入下一次变化。一个设计若遗漏关键变量,系统会像“忘了刚才发生什么”;若把全部历史都当状态,又会让判断不必要地沉重。好的状态表示,是用足够少的信息维持足够准确的下一步。
了解 Geoffrey Chen 的更多信息
订阅后即可通过电子邮件收到最新文章。