AF 即抽象函数, RI 即表示不变性
抽象函数(Abstraction Function)
抽象函数为表示值空间到抽象值空间的一个映射
R:面向实现的表示值空间
A:面向规格说明的抽象值空间
R ==>A 一定是满射,但不一定是单射.
抽象函数即一个R到A的映射: AF : R → A
表示不变性(Repretation Invariance)
"表示"即ADT中的各个属性;
而表示不变性即这些属性必须保持的性质,如年龄不能为负数, 概率不能大于1.
检查不变性(checkRep)
检查不变性就是确定RI是否还成立.
在实现中采用断言技术assert来检查不变性是否保持,可以更早地捕获bug
应该在所有有create 和mutate方法的最后进行checkRep();
注意: Rep中不应该接受null. checkRep()中也应该检查是否为null.
AF RI 在文档中
AF 、RI 、表示泄露放在属性与方法之间.
表示泄露: 指的是外部代码能直接改变(不借用类中的mutator方法)类中的属性.
对表示泄露安全相关的参数,特别是输入参数和返回值,给出保证不泄露内部表示的策略。