ADT操作的四种类型
Creator(构造器):t* → T。从无或者其他类型生成一个该类型对象,如Integer.valueOf()、toString()等;
Producer(生产器):T+, t* → T。从本类型的至少一个对象,可加上其他类型的对象,返回一个新的本类型对象,如BigInteger.mod()、String.toUpperCase()等;
Observer(观察器):T+, t* → t。从本类型的至少一个对象,可加上其他类型的对象,返回一个非本类型的对象,如Map.keySet()、Set.contains()等;
Mutator(变值器):T+, t* → void | t | T。从从本类型的至少一个对象,可加上其他类型的对象,返回一个任意类型对象或不返回,如List.addAll()、BufferedReader.readLine()等。不可变数据类型不可改变其内部值,故不会有mutator,mutator通常返回void,因其直接改变属性的值,可以不用再返回值(并不是一定返回void,如Set.add()返回布尔值,表示是否添加成功)。