# 키워드 : 간단한 수식의 결과값을 가지는 임시변수가 있고, 그 임시변수가 다른 리팩토링을 하는데 방해가 된다면, 이 임시변수를 참조하는 부분을 모두 원래의 수식으로 바꾸라. ## before double basePrice = anOrder.basePrice(); return (basePrice […]
# 키워드 : 간단한 수식의 결과값을 가지는 임시변수가 있고, 그 임시변수가 다른 리팩토링을 하는데 방해가 된다면, 이 임시변수를 참조하는 부분을 모두 원래의 수식으로 바꾸라. ## before double basePrice = anOrder.basePrice(); return (basePrice […]
키워드: 메소드 몸체가 모소드의 이름 만큼이나 명확할때는 호출하는 곳에 메소드의 몸체를 넣고, 메스드를 삭제하라. // befor int getRating(){ return (moreThanFiveLateDeliveries()) ? 2:1; } boolean moreThanFiveLateDeliveries () { return _numberOfLateDeliveries > 5 ; […]
핵심 키워드 : 코드의 목적이 잘 드러나도록 메소드의 이름을 지어 별도의 메소드로 뽑아낸다. … 1. code # BEFOR
1 2 3 4 5 |
void printOwing(double amount) { printBanner(); System.out.println("name:" + \_name); System.out.println("amount:" + amount); } |
# AFTER
1 2 3 4 5 6 7 8 9 |
void printOwning(double amount) { printBanner(); printDetail(amount); } void printDetail(double amount) { System.out.println("name:" + \_name); System.out.println("amount:" + amount); } |
example ======= # 지역변수가 없는 경우 ## befor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
void printOwning() { Enumeration e = orders.elements() ; double outstanding = 0.0 ; //banner dispaly System.out.println("\ *************************"); System.out.println("***** Customer Owers****"); System.out.println("****************\ *\**\ **\***\ \*"); // outstaing 계산 while(e.hasMoreElements()) { Order each = (Order)e.nextElements(); outstanding = each.getAmount(); } //상세 정보 표시 System.out.println("name:" + \_name); System.out.println("amount:" + outstandig); } |
## […]