gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:18:03 34 4
gpt4 key购买 nike

我正在看书Java Concurrency in Practice并对这些术语感到有些困惑:

  1. 前置条件
  2. 后置条件
  3. 不变量

谁能给我解释一下(如果可能的话,举个例子)?

最佳答案

如果你不能理解这些简单的想法,你会在编写 Java 时遇到很多问题,尤其是多线程代码:

  1. 前置条件是在调用方法之前必须满足的条件。该方法告诉客户“这是我对你的期望”。
  2. 后置条件是方法完成后必须为真的事情。该方法告诉客户“这是我 promise 为您做的事情”。
  3. 不变量是始终正确且不会改变的事物。该方法告诉客户“如果在你调用我之前这是真的,我保证在我完成后它仍然是真的”。

它们都是“契约式编程”理念的一部分。它是由一个名叫 C.A.R. Hoare 的人发明的。 . Bertrand Meyer 构建了一种名为 Eiffel 的面向对象语言。周围。没有人经常使用它,但他因此在阳光下度过了一天。

埃菲尔不是很受欢迎。在我写这篇文章时,关于 SO 的问题有超过 400 万个,但其中只有 32 个被标记为“埃菲尔”。

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

我的立场是正确的 - 谢谢你,flamingpenguin。我已经更新了我的答案。

关于java - 计算机术语中的前置条件,后置条件和不变量有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11331964/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com