设计规约
1 Specification、前置/后置条件
-
spec 格式
/** * 功能描述 * @param n1 参数描述 * @param n2 参数描述 * @return 返回值描述 * @throws 异常描述 */
- 参数只出现变量名,不要出现数据类型
-
前置/后置条件
- 前置条件:输入,对客户端的约束,在使用方法是必须满足的条件
- 后置条件:输出和异常,对开发者的约束,方法结束时必须满足的条件
- 异常行为:前置条件不满足时候的行为
- 前置条件不满足,则方法可做任何事情
2 行为等价性
- 定义
行为等价性要站在规约的角度看,看其是否实现了规约要求的功能,如果两个方法实现了相同的效果,则视为行为等价的。
3 规约的强度
- 定义
这样的规约是更强的:前置条件更少,后置条件更多(要的更少,给的更多)
spec变强:更放松的前置条件+更严格的后置条件 - 如果规约 S2的强度强于S1,那么就可以用S2代替S1