Replace Array with Object(以对象取代数组)
String[] row = new String[3];
row[0] = "Liverpool";
row[1] = "15";
修改为:
Performance row = new Performance();
row.setName("Liverpool");
row.setWins("15");
做法
新建一个类表示数组所拥有的信息,并在其中以一个public字段保存原先的数组
修改数组的所有用户,让它们改用新类的实例
编译,测试
逐一为数组元素添加取值/设值函数。根据元素的用途,为这些访问函数命名。修改客户端代码,让它们通过访问函数取用数组内的元素。每次修改后,编译并测试
当所有对数组的直接访问都转而调用访问函数后,将新类中保存该数组的字段声明为private
编译
对于数组内的每一个元素,在新类重创建一个类型相当的字段。修改该元素的访问函数,令它改用上述的新建字段
每修改一个元素,编译并测试
数组的所有元素都有了相应字段之后,删除该数组
范例
String[] row = new String[3];
row[0] = "Liverpool";
row[1] = "15";
String name = row[0];
int wins = Integer.parseInt(row[1]);
Performance row = new Performance();
row._data[0] = "Liverpool";
row._data[1] = "15";
String name = row._data[0];
int wins = Integer.parseInt(row._data[1]);
class Performance{
public String[] _data = new String[3];
}
class Performance...
public String getName(){
return _data[0];
}
public void setName(String arg){
_data[0] = arg;
}
}
row.setName("Liverpool");
row._data[1] = "15";
String name = row.getName();
int wins = Integer.parseInt(row._data[1]);