Hit 软构--5 设计规约

一、Specification:规范化编程

在编程过程中,文档与规约是十分重要的。因为除了编译器,其他人也需要阅读你所编写的程序。spec就起到了这个协助沟通交流的作用。
Spec,是一种程序与客户端之间达成的契约,给供需双方都确定了责任,双方都要遵守。spec讲述了方法输入和输出的数据类型,方法的功能和正确性。它只讲了“做什么”,但是无需讲述"怎样实现"。
  • 行为等价性

描述两个方法是否可以相互替换。两个方法的内部行为可能不同,但是对于客户端来说,可能作用是相同的。一般来说,两个方法的规约相同,那么他们就是等价的。

precondition(前置条件):对客户端的约束,在使用方法时必须满足的条件
postcondition(后置条件):对开发者的约束,方法结束时必须满足的条件
一个契约是,如果前置条件满足,那么后置条件必须满足。如果前置条件不满足,那么后置可以进行任何操作。

二、设计Spec

如何比较两个规约,以判断是否可以用一个规约替代另外一个?

当前置条件更弱,后置条件更强时,整个规约的强度就更强,就可以用于替代之前的。也就是说对客户端的要求更少了,但是方法仍然可以返回正确的值。

在设计时最常用的方法是抛出异常,这样能够满足client对前置条件的需求,实现方面也更方便check。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值