여러 프로그래밍적인 요소를 만드는 경우
나중에 발생할 변화를 대비, 해당 함수 또는 클래스 재사용, 의미있는 이름 지어주기
예상하고 만든 요소들이 기대에 부응하지 못하는 경우 제거
계층 합치기(Collapse Hierarchy)
- 상속 구조 리팩토링 중 상/하위 클래스에 차이가 없는 경우 둘을 합칠 수 있다
- 이름이 적절한 클래스에 적용해야 하지만 애매하면 어느쪽도 상관 없음
- intellij 기능: push members down, pull members up 사용
before
class CourtReservation {
private String courtNumber;
}
class Reservation {
private LocalDateTime startDateTime;
private LocalDateTime endDateTime;
private List<String> members;
private String owner;
private boolean paid;
}
after
class Reservation {
private LocalDateTime startDateTime;
private LocalDateTime endDateTime;
private List<String> members;
private String owner;
private boolean paid;
private String courtNumber;
}