如果先决条件被违反了,则代码将产生未定义行为,因此其预期的工作能否履行也是未知的。不正确的先决条件还可能引发安全问题。

通常,先决条件包括在关于这段代码的文档中。有时它可通过特定的语法结构(如警卫或断言)在代码中进行检测。

例如,阶乘只定义于自然数(大于等于零的整数)。因此计算阶乘的程序将会假定输入的值是一个整数,并且它大于等于零,这就是一个先决条件。[1]

面向对象编程中先决条件是契约式设计的一个重要组成部分。契约式设计还包括后置条件和不变条件的概念。

要成功执行一个子程序所需的任何关于对象状态的限制条件都定义在先决条件中。从程序开发者的角度来看,这就构成了契约中子程序调用者的一部分。调用者有义务来确保在调用子程序前满足先决条件,而被调用的子程序则以后置条件来反馈给调用者。[1]

在继承的关系中,继承了子程序的子类必须满足先决条件。也就是说对被继承的子程序的任何实现或重新定义,也必须遵守他们所继承的契约。重新定义的子程序可以削弱先决条件,但不能增强。[1]

在计算机科学中,不变条件是指,在程序执行过程或部分过程中,可始终被假定成立的条件。比如,循环不变条件是指在循环开始和结束后始终成立的条件。

不变条件在逻辑推理计算机程序正确性时,特别有用。优化编译器理论、契约式设计设计方法论及形式方法,都十分依赖于计算机程序的不变条件。

程序员往往使用断言来现式定义不变条件。一些面向对象编程语言也有特定语法定义类不变条件。[1]

契约式设计(英语:Design by Contract,缩写为 DbC),一种设计计算机软件的方法。这种方法要求软件设计者为软件组件定义正式的,精确的并且可验证的接口,这样,为传统的抽象数据类型又增加了先验条件、后验条件和不变式。这种方法的名字里用到的“契约”或者说“契约”是一种比喻,因为它和商业契约的情况有点类似。

因为Design by Contract是属于Eiffel Software的注册商标,很多开发人员用契约式编程(Programming by Contract),契约编程(Contract Programming),或者契约优先式开发(Contract-First development)来指代这种方法。微软也采用这种设计方法,称为代码合约(Code Contracts)。[2]

刚刚查询:先决条件 每五年 秘制红枣腿丁 斯琴朝克图 胃肠减压 一模一样 陈字 风起云涌 响尾蛇 德保县 自治省 营造业 天方夜谭 王岗玲 特拉修斯 福建人 轻工部 尼斯湖 邢家省 苍梧县 十六国春秋别本 色情杂志 大豆芽菜蚬肉汤 谢保军 D3115���г� 旅游发展专项资金 数量化 江北区 会议领导法 youc 外行人 热呼呼 惊叹不已 标准状态 琥珀色 离线计费 生理卫生 深山老林 世界战争 toshi小弟 加舒尔布鲁木IV峰 英雄山 扎拉法 吴廷铸 神农大帝 carrier 陨石坑 永和大学堂 第一线 红角四条蜂 贵之美 互为表里 讲故事 高级职称 电导率表 深入实际 车板镇 家庭妇女 算术编码 娱乐区 决胜千里 王林斗 genetically 建筑漫游 贵州省 火腿肠 Mollusca 叉铃 霍赫内德 子项目 康乐史话 葵花子 参战国 西安水电站 北极熊 克利夫·柯蒂斯 致命性 不设防城市 x-ray
友情链接: 知道 电影 百科 好搜 问答 微信 值得买 巨便宜 天天特价 洛阳汽车脚垫 女装 女鞋 母婴 内衣 零食 美妆 汽车 油价 郑州 北京 上海 广州 深圳 杭州 南京 苏州 武汉 天津 重庆 成都 大连 宁波 济南 西安 石家庄 沈阳 南阳 临沂 邯郸 保定 温州 东莞 洛阳 周口 青岛 徐州 赣州 菏泽 泉州 长春 唐山 商丘 南通 盐城 驻马店 佛山 衡阳 沧州 福州 昆明 无锡 南昌 黄冈 遵义
© 2025 haodianxin 百科 消耗时间:0.006秒 内存2.49MB