Chapter 6:Abstract Data Type
抽象数据类型相关概念
抽象数据类型(ADT)强调“作用于数据上的操作”,程序员和客户端无需关心数据如何具体存储的,只需设计/使用操作即可。
抽象数据类型的特性:
可能发生表示泄露
抽象函数(abstraction function) [AF]
表示独立性(representation independence) [RI]
表示不变性(representation invariant)
抽象数据类型的操作分类:
构造器(creator):t* → T,可能实现为构造函数或静态函数(工厂方法)
生产器(producer):T+, t* → T
观察器(observer):T+, t* → t
变值器(mutator):T+, t* → void | t | T,通常返回void,也可返回非空(如本身、修改结果等)
注:T代表抽象类型自身,t是其他类型,+表示类型出现一次或多次,*表示类型出现零次或多次。
例:
Integer.valueOf() – Creator
new ArrayList() – Creator
Arrays.asList() – Creator
String.concat() – Producer
BigInteger.mod() – Producer
String.toUpperCase() – Producer
List.size() – Observer