对这三个概念总是傻傻分不清,今天把他们总结一些:
AF(abstract function)
其和rep invariant一起出现,共同完成R(rep)到A(abstract field)的对应关系。AF完成从R到A的映射,即对于RI的解释。
AF性质
准确地讲,AF是RI到A的映射(由于RI已经将我们要表示的部分选择出来了)。其具有以下几种性质
1,一定是一个满射(即我们一定能实现RI和AF结合之后表示了所有的A中的元素,即我们选取的数据表达是完善的)
2,不一定是一个单射(可能有很多表示,他们的抽象状态是一样的)
RI(rep invariant)
一种解释方式是一个rep到boolean(true or false)的映射,注释中的RI主要写的是rep中的区域的取值(有效范围)
**使用checkRep方法。checkRep方法中放置RI限制的检查。**在Constructor,mutator,generator和observer的返回之前(最好带上)都要使用这个方法检查是否仍然成立(即所要映射的仍然是满足相同约束的集合)
1.1spec基本概念:
spec,全称为specification,即规约,其规约的是使用者(client)和实现者(implementor)之间的妥协与契约,即是一种在使用时必须要遵循的要求的说明,也是一种在在实现时需要遵循的原则。
1.2spec一般被书写在:
(1)每一个类前面,(2)每一个方法前面