抽象数据类型:Abstract Data Types (ADT),定义是:一个数学模型及定义在些数学模型上的一组操作。数据模型太抽象了,代码大全中这样说的:一些数据以及对这些数据所进行操作的集合。
上面定义中的数据,是广意上的数据,可以指一组数字,也可以指一组描述一张地图的数据,也可以指一个窗体等等。
ADT定义了数据存储及可对这些数据进行的操作 ,使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。从而让使用者可以在更高层次(在问题领域,而非底层实现领域)上进行数据操作,隔离了使用与实现。
ADT的描述一般形式如下:
名称{
数据对象:......
数据关系:......
操作集合:......
}
ADT是类的基础。ADT具有抽象和封装的特点。所以跟类一样具备抽象与封装带来的益处。以下是代码大全中对ADT的好处的说明:
1.改动不会影响程序
2.让接口能提供更多信息。(接口(如名称)可以传达出更多信息)
3.更容易提高性能(修改ADT实现,则此ADT的所有使用者都可以受益,并且不用做修改)
4.让程序的正确性更显而易见(操作接口,而非操作细节,如果Font.SetBoldOn()与Font.attribute= 0x02)
5.程序更具自我说明性(同4的例子)
6无须在程序内到处传递数据(只使用ADT提供的接口,不用操作细节中的数据)
7可以像现实世界中那样操作实体,而不是在底层实现上操作它。
java中的ADT:java中的集合即是抽象数据类型。