一、ADT是什么?
ADT是抽象数据类型(Abstract Data Type)的简称.对客户端来说,ADT是一系列对象和操作的集合;对开发者来说,ADT是表示和方法的优秀封装,它适当地隐藏一些表示,并且展示出便于客户使用的模块。在客户的视角,一个设计优秀的ADT应当是"公理化定义"的,在使用时不需关注"它是什么",而是关注"它能做什么"。
二、ADT的特性
1.抽象函数
首先介绍两个概念:
1.表示值构成的空间R:实现者看到和使用的值。
2.抽象值构成的空间A:用户看到和使用的值。
抽象函数就是R和A之间映射关系的函数,即如何将 R 中的每一个值解释为 A 中的每一个值(抽象函数是一个单射,不一定是双射)。
2.表示不变性
表示不变性 RI 可以理解为某个具体的“表示”是否是“合法的,也可将 RI 看作所有表示值的一个子集,它包含了所有合法的表示值。
3.表示独立性
表示独立性是指用户使用 ADT 时无需考虑其内部如何实现, ADT 内部表示的变化不应影响外部规约和客户端,实现者可以采用任何的方式来实现这个ADT,只要其满足ADT的规约。