AF: 从抽象空间到现实空间的映射,满射但不一定是单射。
RI: 表示独立性,可以理解为rep需要满足的条件,即某个具体的“表示”是否是“合法的”。
Spec: 说明函数的作用,和限制条件,分为pre-condition和post-condition,前置条件更弱或后置条件更强使spec变得更强
checkRep: 按照写的RI来检查rep是否合法,一般在Creator,producer,mutator后检查。
表示泄露:所有变量都要用private类型,返回值若可能暴露rep,使用防御式拷贝或者collection.unmodifiable...
测试ADT的方法:
(1)测试creators,producers和mutators:调用observers来观察这些operations的结
果是否满足spec;
(2)测试observers:调用creators,produces和mutators等方法产生或改变对象,来
看结果是否正确。