分两种情况,属性为不可变和可变
1. 例如一个ADT Graph, 不能直接使用Graph.lenth (lenth为Graph中的一个属性),应该使用Graph.getLength()
public int getLength() {
return this.length
}
int length 为不可变(基本数据类型都为不可变), 可以直接return
2. 如果ADT的field中有如下定义
public class Graph {
Date date;
int length;
}
Date是一个可变类型,那么我们使用修改函数进行修改时,需要返回一个新的修改的对象,而非对其直接进行修改
无论可变不可变,return的一定是immutable的
本文探讨了在抽象数据类型(ADT)中,如何处理不可变和可变属性。对于不可变属性如`length`,直接返回即可;而对于可变属性如`Date`,需要通过新对象来维护不变性。强调无论属性是否可变,返回的应当是不可变的状态。
90

被折叠的 条评论
为什么被折叠?



