메소드구성 2

[리팩토링 refactoring] Composing methods 메소드 구성 - Remove assignments to parameters 매개 변수에 대한 할당 제거

▪Remove assignments to parameters 매개변수에 대한 할당 제거 Problem어떤 값이 메소드 몸체 안에 파라미터 값으로 할당되어졌을 때 - JAVA int discount(int inputVal, int quantity) {if (inputVal > 50) {inputVal -= 2;}//...} Solutionint discount(int inputVal, int quantity) {int result = inputVal;if (inputVal > 50) {result -= 2;}//...}대신 임시 변수를 사용한다.이 리팩토링은 로컬변수를 다루는게 아니라 파라미터를 다루고 있다.만약 파라미터가 매개변수 참조를 통해 전달되는 경우, 파라미터 값이 이 메소드 안에 변경된 후, 이..

[리팩토링 refactoring] Composing methods 메소드 구성 - Inline Method 즉시 처리하는 메소드

▪inline Method 즉시 처리하는 메소드 Problem java메소드 몸체가 메소드의 이름 만큼이나 명확할 때 사용한다.class PizzaDelivery { //... int getRating() { return moreThanFiveLateDeliveries() ? 2 : 1; } boolean moreThanFiveLateDeliveries() { return numberOfLateDeliveries > 5; }} Solution해당 본문을메소드를 호출하는 호출자안으로 옮기고 메소드를 삭제한다.int getRating(){ return (_numberOfLateDeliveries > 5) ? 2 : 1;}인디렉션이 도움이 되기는 하지만, 필요 없는 인디렉션은 짜증나게 한다.또한, Inline..