当前位置: 首页 > 面试题库 >

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

虞博涛
2023-03-14
问题内容

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

  1. 前提条件
  2. 岗位条件
  3. 不变量

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


问题答案:

如果您不懂这些简单的想法,您将在编写Java时遇到很多问题,尤其是多线程代码:

  1. 前提条件是在调用方法之前必须满足的条件。该方法告诉客户“这就是我对您的期望”。
  2. 后置条件是方法完成后必须满足的条件。该方法告诉客户“这是我保证为您做的事”。
  3. 不变的东西总是真实的,不会改变。该方法告诉客户“在您致电给我之前,如果这是真的,我保证做完后仍然会是真的”。

它们都是“按合同编程”思想的一部分。它是由一个名叫CAR
Hoare
的人发明的。Bertrand Meyer
在其周围构建了一种称为Eiffel的面向对象的语言。没有人使用太多,但由于这个原因,他在阳光下度过了一天。

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

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

我的立场是正确的-谢谢你,烈火企鹅。我已经更新了答案。



 类似资料:
  • 本文向大家介绍watch和计算属性有什么区别?相关面试题,主要包含被问及watch和计算属性有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 通俗来讲,既能用computed 实现又可以用 watch 监听来实现的功能,推荐用 computed,重点在于 computed 的缓存功能 computed计算属性是用来声明式的描述一个值依赖了其它的值,当所依赖的值或者变量改变时,计算属性也会跟着

  • 是否有一些基于条件设置属性的语法? 我希望将express设置为一个值或根本不设置(即,不应该有名为express的键),并且在定义后没有额外的语句。我知道我可以将其用作布尔值,但接收端正在使用一个检查,我想知道是否可以避免修改它。 编辑:似乎没有直接解决上述问题的方法。以下是建议: JSON。stringify(Chris Kessel,dystroy): 匿名函数(Paulpro): 一个额外

  • 链接 您可以将类不变量视为一个健康标准,操作之间的所有对象都必须满足该标准。作为类的每个公共操作的先决条件,因此可以假设类不变量成立。此外,可以假设它是类不变量所持有的每个公共操作的后条件。从这个意义上说,类不变量是对类中公共操作的先决条件和后决条件的一般强化。有效的前提条件是与类不变量相结合的公式化的前提条件。类似地,有效后条件是与类不变量结合的公式化后条件。 1.如果在类: a) 先决条件通常

  • 问题内容: 如何在Spring配置文件中包含条件语句 我有四季豆(b),其值取决于属性(a)的值。a是根据其运行环境动态设置的。 我该如何在spring config中编写代码? 问题答案: 正如Ryan所说,SpEL可以提供帮助。你应该能够在Spring xml中执行以下操作:

  • 在Spring批处理中,我需要基于一个正在从Job参数传递的标志,在一个bean上有条件地注入一个属性。 例如,如果作业参数“iscar”为“true”,则需要将字符串“car.xsd”作为属性传递,否则为“bus.xsd”。 我哪里做错了? 这是我尝试过的- 尝试#1 给出: 原因:java.lang.IllegalStateException:无法绑定到占位符:true?“car.xsd”:“

  • 在 imi 中,使用模型关联时,提供了监听前置和后置事件的方法,让开发者可以更加灵活地做一些自定义处理。 事件 插入事件 前置事件名: IMI.MODEL.RELATION.INSERT.模型类名.模型属性名.BEFORE 后置事件名: IMI.MODEL.RELATION.INSERT.模型类名.模型属性名.AFTER 事件参数: 参数名 类型 描述 model string 模型类名 prop