有什么区别前期状态,后置条件,并在计算机术语不变[关闭](What are the differen

2019-06-26 01:29发布

我读这本书的Java并发实践 ,并得到一个有点困惑与这些条款:

  1. 前期状态
  2. 后置条件
  3. 不变

有人可以请给我解释一下他们(用一个例子,如果可能的话)?

Answer 1:

你将有很多编写Java,特别是多线程代码,如果你不明白这些简单的想法问题:

  1. 前提条件是东西叫做方法之前必须是真实的。 该方法告诉客户“这是我对你的期望。”
  2. 后置条件是事物的方法完成后必须是真实的。 该方法告诉客户“这是我答应给你做。”
  3. 不变的是永远真实的,不会改变的事情。 该方法告诉客户:“如果你给我打电话之前,这是真的,我保证它仍然是真实的,当我完成了”。

他们是所谓的“合同编程”的理念的一部分。 它是由一个叫他发明CAR Hoare的 。 伯特兰·迈耶建所谓的面向对象语言埃菲尔铁塔周围。 没有人使用它了,但他每天因为它的太阳了。

埃菲尔铁塔是不是很受欢迎。 上有这样我写这篇文章超过四百万个问题,但其中只有32的标签为“埃菲尔”。

更新:有在等29月-2016 11966392问题。 其中只有92中标记“埃菲尔”。 埃菲尔铁塔的问题的比例停留在〜0.00077%,基本保持不变。

我站在纠正 - 谢谢你,flamingpenguin。 我已经更新了我的答案。



文章来源: What are the differences pre condition ,post condition and invariant in computer terminology [closed]