리팩토링
-
리팩토링 : Replace Temp with Query리팩토링 2013. 2. 18. 09:00
조건표현식의 결과를 저장하기위해 임시 변수를 사용하고 있다면 적용그 표현식을 메소드안으로 뽑아내고,임시변수에 대한 모든 참조를 표현식으로 바꾸시오.이렇게하면, 새로운 메소드는 다른 메소드에서 사용될 수 있음. 적용전 double basePrice = _quantity * _itemPrice; if (basePrice > 1000) return basePrice * 0.95; else return basePrice * 0.98; 적용후 if (basePrice() > 1000) return basePrice() * 0.95; else return basePrice() * 0.98; ... double basePrice() { return _quantity * _itemPrice; } 참조http://www..
-
리팩토링 : Replace Static Variable with Parameter리팩토링 2013. 2. 16. 09:00
작자 : Marian Vittek 조건정적변수에 의존적인 함수가 더 일반적인 컨텍스트에서 재사용되어야 한다면적용함수에 새 파라메터를 추가하고 함수내의 정적 변수에 대한 모든 참조를 이 새 파라메터로 대체하시오. 적용전 void printValues() { for (int i = 0; i < people.length; i++) { System.out.println(people[i].name+" has salary "+people[i].salary); } } public static void main(String args[]) { ... printValues(); } 적용후 void printValues(PrintStream outfile) { for (int i = 0; i < people.length; ..
-
리팩토링 : Replace Recursion with Iteration리팩토링 2013. 2. 15. 09:00
작자 : Ivan Mitrovic 조건이해하기 어려운 재귀호출을 사용하는 코드가 있다면 적용재귀호출을 반복구문으로 변경하시오. 적용전 public void countDown(int n) { if(n == 0) return; System.out.println(n + "..."); waitASecond(); countDown(n-1); } 적용후 public void countDown(int n) { while(n > 0) { System.out.println(n + "..."); waitASecond (); n -= 1; } } 참조http://www.refactoring.com/catalog/replaceRecursionWithIteration.html