到处都是重复的代码?方法体又臭又长看不懂?快来试试抽取方法(Extract Method)吧,保证药到病除!
何为抽取方法
将重复的代码或语义独立的代码抽取成一个方法
看好了:
Tom抓Jerry(又臭又长版)
class Tom {
/**
* Tom当前的位置
**/
private int curPos;
public void catchJerry() {
//只要没抓到Jerry就一直抓
while(true) {
//找Jerry
//左看看
int posOfJerry = lookLeft();
//右看看
if(posOfJerry == -1)
posOfJerry = lookRight();
//上看看,下看看
//.....省略
//前往Jerry的位置
while(curPos <= posOfJerry) {
//迈前腿
curPos ;
//迈后腿 保持平衡
//....
}
//抬起爪子
upHands();
//挥爪
Object objInHand = waveHands();
//Jerry是否在手中
if(Jerry.equals(objInHand))
break;
}
}
}