- 기능이 같은 메서드를 발견하면, 함수 추출하기와 메서드 올리기(12.1절, 한마디로 중복 코드 제거이다.)를 차례로 적용해 슈퍼 클래스로 옮긴다.
- 근데 그 메서드가 생성자라면 ???? 조금 다른식으로 접근해야함.
- 슈퍼클래스에 생성자가 없다면 하나 정의한다. 서브클래스의 생성자들에서 이 생성자가 호출되는지 확인한다.
- 문장 슬라이드하기로 공통 문장 모두를 super() 호출 직후로 옮긴다.
- 공통 코드를 슈퍼클래스에 추가하고 서브클래스들에서는 제거한다. 생성자 매개변수 중 공통 코드에서 참조하는 값들을 모두 super()로 건넨다.
- 테스트한다.
- 생성자 시작 부분으로 옮길 수 없는 공통 코드에는 함수 추출하기와 메서드 올리기를 차례로 적용한다.