计算机术语中前置条件、后置条件和不变量有什么区别

问题描述 投票:0回答:1

我正在阅读《Java 并发实践》一书,并对这些术语感到有点困惑:

    前提条件
  1. 后期条件
  2. 不变量
  3. 有人可以向我解释一下吗(如果可能的话,举个例子)?

java concurrency uml invariants
1个回答
68
投票

前置条件是调用方法之前必须满足的条件。该方法告诉客户“这就是我对你的期望”。
  1. 后置条件是方法完成后必须为真的东西。该方法告诉客户“这就是我承诺为您做的”。
  2. 不变量是指永远正确且不会改变的事物。该方法告诉客户“如果在你打电话给我之前这是真的,我保证在我完成后它仍然是真的”。
  3. 它们都是“契约编程”思想的一部分。它是由一个名叫
C.A.R. 的人发明的。霍尔

。 Bertrand Meyer 围绕它构建了一种名为 Eiffel 的面向对象语言。没有人经常使用它,但他却因为它而在阳光下度过了一天。 埃菲尔铁塔不是很受欢迎。当我写这篇文章时,SO 上有超过 400 万个问题,但其中只有 32 个被标记为“eiffel”。

更新:2016 年 6 月 29 日,SO 上有 11,966,392 个问题。其中只有 92 个被标记为“埃菲尔铁塔”。 Eiffel 问题的百分比大致保持在 ~0.00077%。

© www.soinside.com 2019 - 2024. All rights reserved.