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]);
