第三章:ADT和OOP(第二节)

3.2设计规约

  1. 规约 前置,后置条件
  2. 行为等价性
  3. 规约的强度
---------------------------------------------------------------------------------------------------------------------------------

1.规约 前置,后置条件

规约是客户与程序员之间达成的契约,其内容包含

前置条件对客户的约束,使用时必须满足的条件 requires

后置条件:程序员的约束,方法结束时必须满足的条件 effects

方法前的注释也是规约(这东西可以自动生成)

---------------------------------------------------------------------------------------------------------------------------------

2.行为等价性

站在客户的角度看待,与怎样实现无关

比如说最短路径算法:无论是用迪杰斯特拉算法与弗洛伊德算法,只要求出的结果一样,就是行为等价性

---------------------------------------------------------------------------------------------------------------------------------

3.规约的强度

如果A的前置条件比B的弱,后置条件比B的强,则说明A的强度比B的强 (有一个满足,另一个也可等于也算)

A可以替换B  

强的规约就是让程序员的工作更加复杂的规约

确定规约:一种输入一种输出

欠定规约:一个输入可以有多个输出    欠定规约通常有确定的实现

不确定规约:一个输入每次输出可能不一样(随机)


操作式规约, 例如:伪代码(告诉别人你怎么做)

声明式规约:没有内部实现的描述,只有“初-终”状态(告诉别人你要做)


如:伪代码


 





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值