2011년 5월 26일 목요일

Replace Subclass with Fields

상수 데이터를 리턴하는 메소드만 다른 서브클래스가 있으면 그 메소드를 수퍼클래스의 필드로 바꾸고 서브 클래스를 제거하라.
! 동기
  • 접근자가 서로 다른 값을 리턴하는 서브 클래스가있는 경우에 매우 유용하다.

! 절차
  • 서브 클래스에 Replace Constructor with Factory Method를 사용한다.
  • 서브 클래스를 참조하는 코드는 수퍼클래스를 참조하도록 수정한다.
  • 각각의 상수 메소드에 대한 필드를 수퍼 클래스에 선언한다.
  • 이 필드들을 초기화하기 위해, 수퍼 클래스에 protected 생성자를 만든다.
  • 새로운 수퍼 클래스 생성자를 호출하도록 서브 클래스 생성자를 수정하거나 추가한다.
  • 수퍼 클래스에서 각각의 상수 메소드가 필드의 값을 리턴하도록 하고, 서브클래스에서 상수 메소드를 제거한다.
  • 각각의 메소드를 제거할 때마다 컴파일, 테스트한다.
  • 서브클래스의 모든 메소드가 제거되었으면, Inline Method를 사용하여 생성자를 수퍼 클래스의 팩토리 메소드 안으로 넣는다.
  • 서브 클래스를 제거한다.
  • 불필요한 서브 클래스가 모두 사라질 때 까지 각각의 서브클래스에 대한 Inline Method를 사용하여 생성자를 수퍼클래스의 팩토리 메소드 안으로 넣고, 서브클래스를 제거한다.

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...