什么是类不变量(Class Invariant)?

在面向对象的计算机编程和设计中,类不变量是一组规则,可以用来定义一个对象实例是否存在于有效状态。从设计的角度来看,它是一组边界,在这两个边界之间,对象中的数据必须落在一个适当的功能状态中。它可以在设计中定义文档...
在面向对象的计算机编程和设计中,类不变量是一组规则,可以用来定义一个对象实例是否存在于有效状态。从设计的角度来看,它是一组边界,在这两个边界之间,对象中的数据必须落在一个适当的功能状态中。它可以在设计中定义文档或源代码注释,或者在某些编程语言中,可以直接用可操作的计算机代码实现。使用编码的不变量和断言的程序可能导致程序停止执行,或者在不满足不变条件时抛出各种错误。与标准错误检查不同,类不变量通常只用于确保类的内部实现正常工作,它们通常不在公共文档或编程接口中列出从一个非常基本的层次来看,类不变量本质上是一个类的断言集合,是一个语句,它检查类的某些状态,并且必须求值为true才能继续执行程序。断言的一个示例是确保给定整数始终介于1和10之间的语句。当使用类不变量时,将针对对象所持数据的所有相关部分计算断言,本质上验证对象中的所有数据是否在定义的范围内在许多情况下,使用类不变量与标准错误检查非常相似,在标准错误检查中,对变量进行测量以确保它们在可用边界内或不为空,不变量和断言主要用于捕获不应该发生的错误,除非代码中存在固有缺陷。另一个区别是标准错误检查往往涉及程序控制流的恢复和更改,而不变失败的结果应该是程序终止,当类不变检查失败时,大多数程序终止的原因是对象处于妥协状态,从设计的角度来看,无法满足遵守其设计契约所必需的先决条件和后置条件在面向对象编程语言中,隐式定义类不变量的一个属性是,该不变量是由任何子类继承的一种机制。这可以防止子类重写在中执行的任何不变检查最终,这意味着子类无法破坏由父类建立的设计契约,这可能会导致不可预知的结果或很难找到程序错误
  • 发表于 2020-07-29 20:54
  • 阅读 ( 1482 )
  • 分类:电脑网络

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

推荐文章

联系我们:uytrv@hotmail.com 问答工具