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