[Refactoring] 구린내와 탈취 기법

구린내와 탈취 기법

구린내 탈취를 위한 리팩토링 기법
swich문 조건문을 재정의로 전환,분류 부호를 하위클래스로 전환, 분류 부호를 상태/전략 패턴으로 전환, 매개변수를 메서드로 전환, Null 검사를 널 객체에 위임
강박적 기본 타입 사용 데이터 값을 객체로 전환, 클래스 추출, 매개변수 세트를 객체로 전환, 배열을 객체로 전환, 분류 부호를 하위클래스로 전환, 분류 부호를 상태/전략 패턴으로 전환
과다한 매개변수 매개변수 세트를 메서드로 전환, 매개변수 세트를 객체로 전환, 객체를 통째로 전달
과잉 중개 메서드 과잉 중개 메서드 제거, 메서드 내용 직접 삽입, 위임을 상속으로 전환
기능의 산재 메서드 이동, 필드 이동, 클래스 내용 직접 삽입
데이터 뭉치 클래스 추출, 매개변수 세트를 객체로 전환, 객체를 통째로 전달
데이터 클래스 메서드 이동, 필드 캡슐화, 컬렉터 캡슐화
막연한 범용 코드 계층 병합, 클래스 내용 직접 삽입, 매개변수 제거, 메서드명 변경
메시지 체인 대리 객체 은폐
미흡한 라이브러리 클래스 외래 클래스에 메서드 추가, 국소적 상속확장 클래스 사용
방대한 클래스 클래스 추출, 하위클래스 추출, 인터페이스 추출, 데이터 값을 객체로 전환
방치된 상속물 상속을 위임으로 전환
불필요한 주석 메서드 추출, 어설션 넣기
수정의 산발 클래스 추출
인터페이스가 다른 대용 클래스 메서드명 변경, 메서드 이동
임시 필드 클래스 추출, Null 검사를 널 객체에 위임
잘못된 소속 메서드 이동, 필드 이동, 메서드 추출
장황한 메서드 메서드 추출, 임시변수를 메서드 호출로 전환, 메서드를 메서드 객체로 전환, 조건문 쪼개기
중복코드 메서드 추출, 클래스 추출, 메서드 상향, 템블릿 메서드 형성
지나친 관여 메서드 이동, 필드 이동, 클래스의 양방향 연결을 단방향으로 전환, 상속을 위임으로 전환, 대리 객체 은폐
직무유기 클래스 클래스 내용 직접 삽입, 계층 병합
평행 상속 계층 메서드 이동, 필드 이동