知识卡片

不变式守一致

普通读书笔记卡 · 1711.b

内容

类不变式描述对象在公有方法调用前后必须满足的静态一致性,比如组非空、金额非负、同组水量一致。发散:不变式像对象的健康检查,能把分散字段约束集中表达出来。

参考来源

- 位置:《你真的会写代码吗-2021》第5章《有自我意识的代码:通过监控实现可靠性》"5.1.2 不变式"及"5.2 基于契约设计水容器"(源文件:_epub-src/OEBPS/Text/0015.xhtml) - 结论依据:原文明确"不变式是一个关于类字段的永远为真的条件……不变式是静态一致性规则:它们指的是对象在某个时刻的状态",并给出水容器示例中的具体不变式,如"I1:一个容器的水量不能为负数"和"I4说明了容器组和水量之间的关系"。 - 原始内容:不变式是一个关于类字段的永远为真的条件,除非对象当时正在发生变化(正在调用类的一个方法)……不变式是静态一致性规则:它们指的是对象在某个时刻的状态。后置条件则是动态一致性规则……不变式I1是很直观的:一个容器的水量不能为负数……最后,不变式I4说明了容器组和水量之间的关系。