Replace Array with Object 以对象取代数组

你有一个数组,其中的元素各自代表不同的东西。以对象替换数组。对于数组中的每个元素,以一个字段来表示。

动机

数组是一种常见的用以组织数据的结构。不过,它们应该只用于“以某种顺序容纳一组相似对象”。有时候你会发现,一个数组容纳了多种不同对象,这会给用户带来麻烦,因为他们很难记住像“数组的第一个元素是人名”这样的约定。对象就不同了,你可以运用字段名称和函数名称来传达这样的信息,因此你无需死记它,也无需依赖注释。而且如果使用对象,你还可以将信息封装起来,并使用Move Method为它加上相关行为。

做法

  • 新建一个类表示数组所拥有的信息,并在其中以一个public字段保存原先的数组。
  • 修改数组的所有用户,让它们改用新类的实例。
  • 编译,测试。
  • 逐一为数组元素添加取值/设值函数。根据元素的用途,为这些访问函数命名。修改客户端代码,让它们通过访问函数取用数组内的元素。每次修改后,编译并测试。
  • 当所有对数组的直接访问都转而调用访问函数后,将新类中保存该数组的字段声明为private。
  • 编译。
  • 对于数组内的每一个元素,在新类中创建一个类型相当的字段。修改该元素的访问函数,令它改用上述的新建字段。
  • 每修改一个元素,编译并测试。
  • 数组的所有元素都有了相应字段之后,删除该数组。

results matching ""

    No results matching ""