컴퓨터/이론 및 tools 사용

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

review777777 2016. 11. 24. 02:37
반응형


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 Method는 메소드가 잘못 나누어져 있을 때에도 사용할 수 있다.

잘못 나뉜 두 메소드를 하나로 합쳐 큰 메소드로 만들고, 메소드를 다시 추출한다


메서드는 단순히 다른 메서드에 위임한다.

이 위임 자체는 문제가되지 않는다.

그러나 그러한 많은 방법이있을 때, 그들은 뒤죽박죽으로 뒤섞이는 혼란이 있다.

종종 메서드는 원래 너무 짧지 만 프로그램을 변경하면 그렇게 된다.

따라서 사용 수명이 지났던 메소드를 제거한다.

 

절차

메소드가 다형성이 없는지 확인한다.

메소드를 호출하는 부분을 찾는다.

그 메소드를 메소드의 몸체로 수정한다.

컴파일 및 테스트 후 기존 메소드를 제거한다.

 

Benefits

필요하지 않는 메소드의 수를 최소화함으로써 코드를 더 간단하게 할 수 있다.


How to Refactor 리팩토링 하는 방법

1. 메소드가 서브 클래스에서 재정의되지 않았는지 확인하십시오. 메서드가 재정의 된 경우이 기술을 사용하지 마십시오.
메서드에 대한 모든 호출을 찾습니다. 이러한 호출을 메서드의 내용으로 바꿉니다.
3. 메소드를 삭제하십시오.

 

반응형