sitelink1 | http:// |
---|---|
sitelink2 | |
sitelink3 |
이클립스 기반 프로젝트 필수 유틸리티 (196페이지)
인라인의 의미는 '합치기' 혹은 '줄이기'다. 즉, 가능한 소스를 명확히 하고자 하는 것이다. 인라인 기능에는 두 가지 종류가 있다.
하나는 인라인 로컬 변수(Inline local variable), 또 다른 하나는 인라인 메소드 실행(Inline invocation)이다.
인라인 로컬 변수(Inline local variable)는 로컬 변수에 대해서 리팩토링하는 것으로, 메소드 내에서 불필요하게 로컬 변수를 정의하는 것을 줄이고자 생겨난 기능이다.
예를 들어, 다음과 같이 로컬 변수(intVar)를 만들고 또 다른 로컬 변수(i)에 이 변수의 메소드(intValue) 실행값을 넘겨준다고 하자. 그런데 이 메소드 실행 이외에 intVar의 사용이 없다면,
굳이 두 개의 로컬 변수를 둘 필요 없이 하나의 로컬 변수(i)에 다음과 같이 한 줄로 표현하는 것이 간결하고, 명확하다. 바로 인라인 로컬 변수다.
인라인 로컬 변수 : 리팩토링 전 | 인라인 로컬 변수 : 리팩토링 후 |
Integer intVar = new Integer(10); int i = intVar.intValue(); |
int i = new Integer(10).intValue(); |
인라인 메소드 실행(inline invocation)은 메소드에 대해서 리팩토링하는 것으로써, 외부 메소드를 호출하는데 있어서 외부 메소드 안의 정의된 내용이 굳이 메소드를 호출하여 사용할 정도의 분량이 되지 않고, 단순한 내용일 경우 메소드에 사용된 코드 내용으로 대체할 때 사용한다.
예를 들어, 다음과 같이 외부 메소드가 정의되어 있을때, 리팩토링을 하게 되면 외부 메소드의 내용을 그대로 내부 메소드로 가져오게 하는 것이다. 리팩토링 시에 외부 메소드의 내용까지 지우는 옵션도 있다.
인라인 메소드 실행 : 리팩토링 전 | 인라인 메소드 실행 : 리팩토링 후 |
내부 메소드; some.doSomething(); 외부 메소드; doSomething() { System.out.println("Hi"); System.out.println("Hello."); } |
내부 메소드; System.out.println("Hi"); System.out.println("Hello."); 외부 메소드; doSomething() { System.out.println("Hi"); System.out.println("Hello."); } |
위의 기능을 실행하기 전에 미리보기(preview) 다이얼로그를 이용하여 확인한 후 실행하기 바란다.