计算机术语的前置条件,后置条件和不变性有什么区别
我正在阅读《实践中的Java并发性》一书,并对这些术语有些困惑:
- 前提条件
- 岗位条件
- 不变量
有人可以给我解释一下(如果可能的话,举个例子)?
回答:
如果您不懂这些简单的想法,您将在编写Java时遇到很多问题,尤其是多线程代码:
- 前提条件是在调用方法之前必须满足的条件。该方法告诉客户“这就是我对您的期望”。
- 后置条件是方法完成后必须满足的条件。该方法告诉客户“这是我保证为您做的事”。
- 不变的东西总是真实的,不会改变。该方法告诉客户“在您致电给我之前,如果这是真的,我保证做完后仍然会是真的”。
它们都是“按合同编程”思想的一部分。它是由一个名叫CAR
Hoare的人发明的。Bertrand Meyer
在其周围构建了一种称为Eiffel的面向对象的语言。没有人使用太多,但由于这个原因,他在阳光下度过了一天。
埃菲尔不是很受欢迎。在我撰写本文时,有超过400万个关于SO的问题,但其中只有32个被标记为“埃菲尔铁塔”。
更新:2016年6月29日有11,966,392个关于SO的问题。其中只有92个被标记为“埃菲尔铁塔”。埃菲尔(Eiffel)问题的百分率大致保持恒定在〜0.00077%。
我的立场是正确的-谢谢你,烈火企鹅。我已经更新了答案。
以上是 计算机术语的前置条件,后置条件和不变性有什么区别 的全部内容, 来源链接: utcz.com/qa/402291.html