我想知道在确定特定班级的不变量时是否有确定的程序,或者是否根据具体情况而改变?
显然它取决于某些变量和需要声明,但我的问题是,
我是否可以遵循某种指南来确定特定班级的最佳不变量?
由于
答案 0 :(得分:1)
按照合同概念设计,当它们适应面向对象的语言时,会略微复杂化。
类不变量是一个属性,在调用方法时(例如所有方法的常见前提条件),每个类的实例都保证具有该属性,并且作为回报,每个方法和构造函数必须确保在它们保持为真时终止(就像一个普通的后置条件)。
它们有助于表达一致性条件。对实际钱包进行建模的Wallet类可能具有类不变量,包含的金额始终为正值。
继承了类不变量,就像合同的其余部分一样。方法的新实现必须提供与它们替换的方法相同的保证。