您的位置:首页 > 其它

重构第二天:移动方法

2014-06-24 12:36 134 查看
原文地址:http://www.refactoring.com/catalog/moveMethod.html

在类A中,当一个方法正在用,或者将要用到的功能和资源大部分存在于另一个类B中,而非A类中时,这时我们要考虑把这个方法移到B类中去。





举一个例子:

class Project {
Person[] participants;
}

class Person {
int id;
boolean participate(Project p) {
for(int i=0; i<p.participants.length; i++) {
if (p.participants[i].id == id) return(true);
}
return(false);
}
}

... if (x.participate(p)) ...


上面的例子中participate方法用到的都是Project类中的字段,所以我们决定把participate()方法移到Project类中。

移动participate方法后:

class Project {
Person[] participants;
boolean participate(Person x) {
for(int i=0; i<participants.length; i++) {
if (participants[i].id == x.id) return(true);
}
return(false);
}
}

class Person {
int id;
}

... if (p.participate(x)) ...


这样做后,使得每个类的职责更加明确,清晰。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: