首页 > 代码库 > 重构第二天:移动方法
重构第二天:移动方法
原文地址:http://www.refactoring.com/catalog/moveMethod.html
<style></style>在类A中,当一个方法正在用,或者将要用到的功能和资源大部分存在于另一个类B中,而非A类中时,这时我们要考虑把这个方法移到B类中去。
举一个例子:
1 class Project { 2 Person[] participants; 3 } 4 5 class Person { 6 int id; 7 boolean participate(Project p) { 8 for(int i=0; i<p.participants.length; i++) { 9 if (p.participants[i].id == id) return(true);10 }11 return(false);12 } 13 }14 15 ... if (x.participate(p)) ...
上面的例子中participate方法用到的都是Project类中的字段,所以我们决定把participate()方法移到Project类中。
移动participate方法后:
1 class Project { 2 Person[] participants; 3 boolean participate(Person x) { 4 for(int i=0; i<participants.length; i++) { 5 if (participants[i].id == x.id) return(true); 6 } 7 return(false); 8 } 9 }10 11 class Person {12 int id;13 }14 15 ... if (p.participate(x)) ...
这样做后,使得每个类的职责更加明确,清晰。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。