一、两种值的空间
在构造ADT时,我们称ADT具体实现时的数据结构或用于实现它的数据字段为表示(Representation)。比如我们要构造字符串的ADT,我们可以用数组去存储字符串,所使用的数组就是表示。
在上述例子中对于字符串有了两种概念,一个是数组(表示),一个是日常生活使用的字符串(抽象),我们称所有表示的可能取值组成“表示空间”(R),所有抽象的可能取值组成“抽象空间”(A)。
二、AF
Abstraction Function (AF) 定义为:R到A的一种映射,即解释R中的某个值是如何表示A中的某个值的。
接下来举一个简单的例子。下图是字符串(表示,可以用String对象)到字符集(抽象)的映射,该映射定义为:对于R中每种字符最多出现一次的字符串x,AF(x)表示出现在x中的字符的集合。