代码中的类不变量

时间:2013-06-01 05:13:42

标签: java invariants

我想知道在确定特定班级的不变量时是否有确定的程序,或者是否根据具体情况而改变?

显然它取决于某些变量和需要声明,但我的问题是,

我是否可以遵循某种指南来确定特定班级的最佳不变量?

由于

1 个答案:

答案 0 :(得分:1)

按照合同概念设计,当它们适应面向对象的语言时,会略微复杂化。

类不变量是一个属性,在调用方法时(例如所有方法的常见前提条件),每个类的实例都保证具有该属性,并且作为回报,每个方法和构造函数必须确保在它们保持为真时终止(就像一个普通的后置条件)。

它们有助于表达一致性条件。对实际钱包进行建模的Wallet类可能具有类不变量,包含的金额始终为正值。

继承了类不变量,就像合同的其余部分一样。方法的新实现必须提供与它们替换的方法相同的保证。