Summary:
有一个数组,其中的元素各自代表不同的东西。以对象替换数组。对于数组中的每个元素,以一个字段来表示。
Motivation:
数组是一种常见的用以组织数据的结构。不过,它们应该只用于“以某种顺序容纳一组相似对象”。有时候一个数组容纳了多种不同的对象,这会给客户带来麻烦,因为他们很难记住像“数组的第一个元素是人名”这样的约定。对象就不痛了,你可以运用字段名称和函数名称来传达这样的信息,因此你无需死记它,也无需依赖注释。而且如果使用对象,还可以将信息封装起来,并使用Move Method为它加上相关行为。
Mechanics:
1.新建一个类表示数组所拥有的信息,并在其中以一个public字段保存原先的数组。
2.修改数组的所有用户,让它们改用新类的实例。
3.编译,测试。
4.逐一为数组元素添加取值/设值函数。根据元素的用途,为这些访问函数命名。修改客户端代码,让它们通过访问函数取用数组内的元素。每次修改后,编译并测试。
5.当所有对数组的直接访问都转而调用访问函数后,将新类中保存该数组的字段声明为private。
6.编译
7.对于数组内的每一个元素,在新类重创建一个类型相当的字段。修改该元素的访问函数,令它改用上述的新建字段。
8.每修改一个元素,编译并测试。
9.数组的所有元素都有了相应字段之后,删除该数组。