14.직관적 임시변수 사용 Introduce Explaining Variable

복잡한 수식이 있는 경우에는
수식의 결과나 또는 수식의 일부에 자신의 목적을 달성하는 이름으로 된 임시 변수를 사용하라

  if( ( platform.toUpperCase().indexOf("MAC") > -1 ) &&
        ( browser.toUpperCase().indexOf("IE") > -1 ) &&
        ( wasInitialized() && resized > 0 )
    {
      // 작업...
    }
final boolean isMasOS = platform.toUpperCase().indexOf("MAC") > -1;
final boolean isIEBrowser = browser.toUpperCase().indexOf("IE") > -1;
final boolean wasResized = 0;

if( isMacOS && isIEBrowser && wasInitialized() && wasResized )
{
  // 작업...
}

수식은 매우 복잡해져 알아보기가 어려워질 수 있다.
이런 경우 임시변수가 수식을 좀 더 다루기 쉽게 나누는데 도움이 될 수 있다.
Introduce Explaining Variable은 특히 조건문에서 각각의 조건의 뜻을 잘 설명하는 이름의 변수로 만들어 사용할 때 유용하다. 다른 경우로 긴 알고리즘에서 각 단계의 계산 결과를 잘 지어진 이름의 임시변수로 설명할 수 있다.

임시변수는 한 메서드의 컨텍스트 내에서만 유용하다. Extract Method를 추천.
하지만 때로는 지역 변수 때문에 Extract Method를 사용하기가 어려운 경우도 있다.
그럴때 introduce Explaining Variable을 사용하는 것은 이럴때이다.

※Extract Method 적용 예) https://wikidocs.net/604