1. 表示独立性
client使用ADT时无需考虑内部如何实现,ADT内部表示的变化不应影响外部spec与client
除非ADT的操作指明了具体的pre-condition和post-condition,否则不能改变ADT的内部
表示,因为spec规定了client和和implementer之间的契约。
2. 测试ADT的方法:
(1)测试creators,producers和mutators:调用observers来观察这些operations的结
果是否满足spec;
(2)测试observers:调用creators,produces和mutators等方法产生或改变对象,来
看结果是否正确。
例如:测试构造的String类ADT:MyString
有测试策略:
3. 不变量(invariants):
(1) 含义:保持不变量,是一个好的ADT的重要属性
不变量:在任何时候总是true
-Immutability是一个至关重要的不变量:一但不可变对象被创造,
其在整个生命周期中,总是表现出相同的价值。
-由ADT来负责其不变量,而与client端的任何