'리팩토링 거대한 메소드'에 해당되는 글 1건

  1. 2008.09.22 [rwb] 거대한 클래스
1. 징후
    많은 수의 인스턴스 변수
    많은 수의 메서드
    많은 수의 줄

2. 원인
    거대한 클래스는 조금씩 커진다.
    작성자는 결과적으로 클래스가 너무 커져 버릴때까지 클래스에 기능을 하나씩 추가하는 일을 계속 한다.
    때때로 전체 클래스를 이루는 각 부분에 대한 통찰력 부족이 거대한 클래스를 낳기도 한다.
    어떤 경우이든 이렇게 커진 클래스에는 너무 많은 책임이 한데 포개져 있다.

3. 해야 할 일
    클래스에 긴 메서드가 있다면, 먼저 이 냄새부터 검토하라. 클래스를 나누는 데에는 다음 세가지 접근 방식을
    가장 많이 사용한다.
  1. 클래스가 맡고 있는 책임의 일부를 갖는 새로운 클래스를 찾아낼 수 있다면, Extract Class를 이용한다.
  2. 해당 클래스의 새로운 하위 클래스 간의 책임을 구분할 수 있다Extract SubClass를 이용한다.
  3. 클라이언트가 사용하는 기능들 중 일부를 따로 묶을 수 있다Extract Interface를 이용한다.

    GUI 클래스 중에는 디스플레이 컴포넌트뿐만 아니라, 모델까지 나타내기 때문에 커지는 경우가 종종 있다.
    이런 경우에는 Duplicate Observered Data를 이용하여 도메인 클래스를 뽑아낼수 있다.

4. 효과 
    의사소통을 증진시킨다. 중복을 노출 시킬수 있다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 영겁회귀

티스토리 툴바