简介
编辑在计算机编程中,先决条件是一个条件或谓词,在执行某些代码部分或正式规范中的操作之前必须始终为真。如果违反了一个前提条件,这段代码的效果就会变得不确定,因此可能会也可能不会执行其预期的工作。由于不正确的前提条件,可能会出现安全问题。通常情况下,前提条件被简单地包含在受影响的代码部分的文档中。
前提条件有时会在代码本身中使用防护措施或断言进行测试,有些语言有特定的语法结构来做这些工作。例如:阶乘只被定义为大于或等于零的整数。
因此,一个计算输入数字阶乘的程序会有这样的前提条件:该数字是一个整数,并且大于或等于零。在面向对象的编程中,面向对象的软件开发中的前提条件是契约设计的一个重要组成部分。
契约设计还包括后置条件和类不变量的概念。任何例程的先决条件都定义了对对象状态的任何约束,这些约束是成功执行的必要条件。
从程序开发者的角度来看,这构成了合约中例程调用者的部分。然后,调用者有义务在调用例程之前确保前提条件成立。调用者努力的回报表现在被调用例程的后置条件中。
Eiffel例子
编辑下面的例子中用Eiffel编写的例程把一个整数作为参数,这个整数必须是一天中某个小时的有效值,即0到23,包括在内。前提条件在关键字require之后。它规定了参数必须大于或等于0,小于或等于23。
标签valid_argument:描述了这个前提条件子句,并在运行时违反前提条件的情况下用于识别它。
前提条件和继承
编辑在有继承的情况下,被子类(子类)继承的例程会在其前提条件生效的情况下进行。这意味着任何继承例程的实现或重新定义也必须按照其继承的契约来编写。
前提条件可以在重新定义的例程中被修改,但它们只能被削弱。也就是说,重新定义的例程可以减少客户的义务,但不能增加。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/164317/