经过重新对specifications章节的学习,有了新的体会
Specification的作用
规格说明就是类似于一个“防火墙”一样将客户和实现者隔离开,使得客户不必知道这个单元是怎么被使用的,譬如不用阅读程序源码。而实现者也不用考虑这个单元如何被使用,因为实现者这里就已经以客户遵循规格说明来实现。而这种隔离实现了“解耦”。
前置条件
前置条件是客户的义务,确保了方法被调用时所在的状态。只有客户遵守了前置条件的输入,那么才可能有正确的输出,而如果输入的是不满足前置条件,方法的输出可能就不满足后置条件,即可以做任何事情:如输出一个值,抛出异常,返回一个任意的值等等。而对不满足前置条件对代码进行的修改,以防对程序有毁灭性打击,就是我们之后的健壮性
后置条件
后置条件是实现者的义务,如果前置条件满足,那么方法的行为应该符合后置条件规定的。