1.Extract Method
Turn the fragment into a method whose name explains the purpose of the method.
Before:
void printOwing(){
Enumeration e =orders.elements();
double outstanding=0;
//print banner
System.out.println("*******************");
System.out.println("***Customer Owes***");
System.out.println("*******************");
//calculate outstanding
while(e.hasMoreElements()){
Order each=(Order)e.nextElement();
outstanding+=each.getAmount();
}
// print details
System.out.println("name: "+name);
System.out.println("amount "+amount);
}
After:
void printOwing(double amount){
printBanner();
amount=getOutstanding();
printDetails(amount);
}
void printBanner(){
System.out.println("*******************");
System.out.println("***Customer Owes***");
System.out.println("*******************");
}
void printDetails(double amount){
System.out.println(“name” + name);
System.out.println(“amount”+amount);
}
double getOutstanding(){
Enumeration e =orders.elements();
double result=0.0;
while(e.hasMoreElements()){
Order each=(Order)e.nextElement();
result+=each.getAmount();
}
return result;
}
}