重构一 重新组织你的函数(Extract Method)(4)---范例(1)

重构一 重新组织你的函数(Extract Method)(4)---范例(1)
范例(Examples): 无局部变量(No Local Variables)
在最简单的情况下,Extract Method(110)易如反掌。请看下列函数:

void printOwing() {
    Enumeration e = _orders.elements();
    double outstanding = 0.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" + outstanding);
}

我们可以轻松提炼出[打印banner]的代码。我只需要剪切、粘贴、再插入一个函数调用动作就行了:

void printOwing() {
    Enumeration e = _orders.elements();
    double outstanding = 0.0;

    printBanner();

    // calculate outstanding
    while(e.hasMoreElements()) {
       Order each = (Order) e.nextElement();
       outstanding += each.getAmount();
    }

    //print details
   
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("********************************");
}

你可能感兴趣的:(重构一 重新组织你的函数(Extract Method)(4)---范例(1))