重构读书笔记-8_5-Replace_Array_With_Ob

2019-06-26  本文已影响0人  MR_Model

重构第八章

5.Replace Array with Object(以对象取代数组)
你有一个数组(array),其中的元素各自代表不同的东西。以对象替换数组。对于数组中的每个元素,以一个值域表示之。

Example:

string row = new string[3];
row[0] = "RiverPool";
row[1] = "15";
string name = row[0]
int wins = Integer.parseInt(row[1]);

Analyse:
示例中,有一个数组,其中有三个元素,分别保存一支球队的名称、获胜场次、失败场次。
使用的时候,你会发现一个数组中容纳了不同的信息,会给使用数组的用户带来麻烦。这个时候可以使用Replace Array with Object(以对象取代数组),通过值域名称和函数名称传达信息的含义,还可以对数据进行封装之类的操作。

End:

class Perfomance() {
    private int wins;
    private string name;
    public void SetWins(int arg) {
        wins = arg;
    }
    public int GetWins() {
        return wins;
    }
    public void SetName(string arg) {
        name = arg;
    }
    public string GetName() {
        return name;
    }
}

Conclusion:

Replace Array with Object(以对象取代数组)将意味不明的数组通过对象来代替,使得数组中原本代替的含义清晰明了。
数组只应该用于以某种顺序容纳一组相似对象

注意

重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
上一篇下一篇

猜你喜欢

热点阅读