重构第二天:移动方法
2014-06-24 12:36
134 查看
原文地址:http://www.refactoring.com/catalog/moveMethod.html
在类A中,当一个方法正在用,或者将要用到的功能和资源大部分存在于另一个类B中,而非A类中时,这时我们要考虑把这个方法移到B类中去。
![](http://images.cnitblog.com/blog/585759/201406/241231546427371.png)
举一个例子:
上面的例子中participate方法用到的都是Project类中的字段,所以我们决定把participate()方法移到Project类中。
移动participate方法后:
这样做后,使得每个类的职责更加明确,清晰。
在类A中,当一个方法正在用,或者将要用到的功能和资源大部分存在于另一个类B中,而非A类中时,这时我们要考虑把这个方法移到B类中去。
![](http://images.cnitblog.com/blog/585759/201406/241231546427371.png)
举一个例子:
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)) ...
这样做后,使得每个类的职责更加明确,清晰。
相关文章推荐
- 31天重构学习笔记2. 移动方法
- 《31天重构》2:移动方法
- 31天重构指南之二:移动方法
- 重构-改善既有代码的设计:对象之间移动特性的八种方法(五)
- 重构-改善既有代码的设计:对象之间移动特性的八种方法(五)
- 31天学习重构(java)---2. 移动方法
- 31 天重构学习笔记2. 移动方法
- 31天重构学习笔记2. 移动方法
- 31天重构学习笔记2. 移动方法
- 31天重构学习笔记2. 移动方法
- 重构-改善既有代码的设计:对象之间移动特性的八种方法(五)
- 重构2-Move Method(方法移动)
- 鼠标移动到某个单元格上后,整个列都变色的实现方法
- 一个在移动设备中获取路径的方法
- 在ASP.NET中实现鼠标移动悬停在DataGrid时高亮显示这一行的方法
- 报复移动老总最绝的方法(超级搞笑)
- 解除移动/联通网络锁定的方法
- 使用U盘,V盘,移动硬盘的终极方法 (转)
- 鼠标移动到某个单元格上后,整个列都变色的实现方法
- 《实战AJAX》中重构的xmlhttpRequest调用的使用方法