抽象数据类型是以其包含的操作来作为其特征定义的,抽象数据类型上的操作可以被分为四个类型,分别为构造器,观察器,可变器和生产器。
creators 构造器:利用其他的数据类型对象产生一个新的对象,可能实现为构造函数或静态工厂方法;
producers 生产器:此操作是用已有该类型对象来产生新的此类型的对象
observers 观察器:以抽象数据类型的一个对象作为参数,返回不同类型对象,例如List类型的.size操作,返回一个int值,其实也就是观察抽象数据类型的此对象的一些值以及属性;
mutators 变值器:是改变对象属性的方法,通常返回void,如果返回void,则必然意味着它改变了某些对象的内部状态。
一个ADT的规约是它所包含的操作集以及这些操作的规约,同时一个好的ADT应该是简单的,内聚的,恰当的同时也是表示独立的。一个抽象数据类型的测试方法是去测试它包含的所有操作,在同样的测试中同时使用构造器,观察器,可变器和生产器。
好的ADT是免受bug的,因为一个好的抽象数据类型提供一个对一个数据行的好的规约,这样用户就能知道从数据型能获得什么,并且实现者也有很高的自由度去改变。
好的ADT是容易理解的,因为一个好的抽象数据类型将它的具体实现隐藏在一系列简单操作后面,这样的话使用此抽象数据类型的编程者只需理解操作即可,不需明白实现的细节。
好的ADT是容易改变的,因为一个好的抽象数据类型有表示独立性,这允许了一个抽象数据类型的实现去改变而不需要它的客户端进行改变。