'긴 매개변수'에 해당되는 글 1건

  1. 2008.09.30 [rwb] 긴 매개변수 리스트
1. 징후
    메서드에 매개변수가 한두 개 보다 많다.

2. 원인
    객체 간의 결합도(Coupling)를 최소화 하려고 했을 가능성이 있다.
    그래서 호출된 객체가 클래스 간의 관계를 알게 하는 대신에, 호출자가 모든 것을
    찾게 했을 것이다. 이렇게 되면 메서드를 매개변수들을 이용해서 호출자가 의뢰한
    작업에 집중하게 된다.

    혹은 프로그래머가 여러가지 변이형을 처리하기 위해 루틴을 일반화하면서
    범용 알고리즘과 수많은 제어(Control) 매개변수를 만들었을 수도 있다.

3. TODO
    A) 이미 알고 있는 다른 객체로부터 해당 매개변수 값을 얻을 수 있다면
        Replace Parameter with Method를 이용한다.
    B) 해당 매개변수들이 하나의 객체로부터 넘어온다면, Preserve Whole Object를 
       시도한다.
    C) 매개변수 데이타가 하나의 논리적 객체로부터 얻어지는 것이 아니라면,
       Introduce Parameter Object를 이용하여 이들을 그룹으로 한다.

4. 효과
    의사소통 증진, 중복을 노출 시킬수 있음, 크기가 작아지는 경우가 많다.

5. 금기
    A) 간혹 두 클래스 간의 의존 관계가 없도록 하는 것이 좋을 때가 있다.
        예) 호출자가 의존 관계를 가질 수 있지만, 이를 넓게 퍼뜨리지 않아야 할 때가 있다.
          변경시에 이런 균형을 망치지 않도록 해야한다.
    B) 때때로 매개변수들을 의미 있는 그룹으로 묶을 수 없는 경우가 있다. 그렇다면 묶지 않는 것이 좋다.
신고
Posted by 영겁회귀

티스토리 툴바