重构第八章
5.Replace Array with Object(以对象取代数组)
你有一个数组(array),其中的元素各自代表不同的东西。以对象替换数组。对于数组中的每个元素,以一个值域表示之。
Example:
string row = new string[3];
row[0] = "RiverPool";
row[1] = "15";
string name = row[0]
int wins = Integer.parseInt(row[1]);
Analyse:
示例中,有一个数组,其中有三个元素,分别保存一支球队的名称、获胜场次、失败场次。
使用的时候,你会发现一个数组中容纳了不同的信息,会给使用数组的用户带来麻烦。这个时候可以使用Replace Array with Object(以对象取代数组),通过值域名称和函数名称传达信息的含义,还可以对数据进行封装之类的操作。
End:
class Perfomance() {
private int wins;
private string name;
public void SetWins(int arg) {
wins = arg;
}
public int GetWins() {
return wins;
}
public void SetName(string arg) {
name = arg;
}
public string GetName() {
return name;
}
}
Conclusion:
Replace Array with Object(以对象取代数组)将意味不明的数组通过对象来代替,使得数组中原本代替的含义清晰明了。
数组只应该用于以某种顺序容纳一组相似对象
注意
重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
网友评论