圣诞大减价开始了!

用对象替换数组

这种重构技术是一种特殊情况用对象替换数据值

问题

您有一个包含各种类型数据的数组。

解决方案

用一个对象替换数组,每个元素都有单独的字段。

之前
String[] row = new String[2];row[0] = "利物浦";行[1]= "15";
性能行= new Performance();row.setName(“利物浦”);row.setWins (15);
之前
String [] row = new String [2];row[0] = "利物浦";行[1]= "15";
性能行= new Performance();row.SetName(“利物浦”);row.SetWins (15);
之前
$row = [];$row[0] = "利物浦";$row[1] = 15;
$row =新性能;行- > setName(“利物浦”);行- > setWins (15);
之前
row =[无* 2]row[0] = "利物浦" row[1] = "15"
row = Performance() row. setname ("Liverpool") row. setwins ("15")
之前
let row = new Array(2);row[0] = "利物浦";行[1]= "15";
let row = new Performance();row.setName(“利物浦”);row.setWins (15);

为什么重构

数组是存储单一类型数据和集合的极好工具。但是如果你使用一个像邮政信箱一样的数组,将用户名存储在盒子1中,用户地址存储在盒子14中,总有一天你会很不高兴你这样做了。当有人把一些东西放在错误的“盒子”中时,这种方法会导致灾难性的失败,还需要您花时间来确定哪些数据存储在哪里。

好处

  • 在生成的类中,您可以将先前存储在主类或其他地方的所有相关行为放置。

  • 类的字段比数组的元素更容易记录。

如何重构

  1. 创建包含数组数据的新类。将数组本身作为公共字段放置在类中。

  2. 创建一个字段,用于在原始类中存储该类的对象。不要忘记在初始化数据数组的位置创建对象本身。

  3. 在新类中,为每个数组元素逐个创建访问方法。给它们起个不言自明的名字,说明它们是做什么的。同时,将主代码中数组元素的每次使用替换为相应的访问方法。

  4. 为所有元素创建了访问方法后,将数组设为私有。

  5. 对于数组的每个元素,在类中创建一个私有字段,然后更改访问方法,使它们使用该字段而不是数组。

  6. 当所有数据都已移动时,删除该数组。

Baidu
map