- 你有一段代码可以被组织在一起并独立出来,将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。
void printOwing(double amout) {
printBanner();
System.out.println("name:"+_name);
System.out.println("amount:"+amout);
}
void printOwing(double amount) {
printBanner();
printDetails(amount);
}
void printDetails(double amount) {
System.out.println("name:"+_name);
System.out.println("amount:"+amout);
}
- 看见一个过长的函数或者一段注释才能让人理解用途的代码,可以将这段代码放进一个独立的函数中函数命名简短,名字清晰一目了然, 如果每个函数的粒度都很小,那么函数被复用的机会就更大,其次,这会使高层函数读起来就像一系列注释,再次 如果函数都是细粒度,那么函数的覆写也会更容易些。
- 范例:无局部变量
void pringOwing() {
Enumeration enumeration =_orders.elements();
double outstanding = 0.0;
//print banner
System.out.println("**************************************");
System.out.println("*********** Customer Owes **********");
System.out.println("**************************************");
while(e.hasMoreElements()) {
_orders each = e.nextElement();
outstanding += each.getAmount();
}
System.out.println("name:"+_name);
System.out.println("amount:"+outstanding);
}
void pringOwing() {
Enumeration enumeration =_orders.elements();
double outstanding = 0.0;
printBanner();
while(e.hasMoreElements()) {
_orders each = e.nextElement();
outstanding += each.getAmount();
}
System.out.println("name:"+_name);
System.out.println("amount:"+outstanding);
}
void printBanner(){
//print banner
System.out.println("**************************************");
System.out.println("*********** Customer Owes **********");
System.out.println("**************************************");
}
- 范例:有局部变量
void pringOwing() {
Enumeration enumeration =_orders.elements();
double outstanding = 0.0;
printBanner();
while(e.hasMoreElements()) {
_orders each = e.nextElement();
outstanding += each.getAmount();
}
printDetails(outstanding);
}
void printBanner(){
//print banner
System.out.println("**************************************");
System.out.println("*********** Customer Owes **********");
System.out.println("**************************************");
}
void printDetails(double outstanding){
System.out.println("name:"+_name);
System.out.println("amount:"+outstanding);
}
范例:对局部变量再赋值
void pringOwing() {
double outstanding = geOutstanding();
printBanner();
printDetails(outstanding);
}
void printBanner(){
//print banner
System.out.println("**************************************");
System.out.println("*********** Customer Owes **********");
System.out.println("**************************************");
}
void printDetails(double outstanding){
System.out.println("name:"+_name);
System.out.println("amount:"+outstanding);
}
double geOutstanding(){
Enumeration enumeration =_orders.elements();
double result= 0.0;
while(e.hasMoreElements()) {
_orders each = e.nextElement();
result+= each.getAmount();
}
return result;
}