거대한 클래스 어떤 클래스가 너무 많은 일을 하다 보면 필드도 많아지고 중복 코드도 보이기 시작한다. 클라이언트가 해당 클래스가 제공하는 기능 중에 일부만 사용한다면 각각의 세부 기능을 별도의 클래스로 분리할 수 있다.
클래스 추출하기를 사용해 관련 있는 필드를 한곳으로 모을 수 있다. 상속 구조를 만들 수 있다면 슈퍼 클래스 추출하기 또는 타입 코드를 서브 클래스로 교체하기를 적용할 수 있다.
클래스 내부에 산재하는 중복 코드는 메서드를 추출해서 제거할 수 있다. 슈퍼클래스 추출하기 두 개의 클래스에서 비슷한 것들이 보인다면 상속을 적용하고, 슈퍼클래스로 필드 올리기와 메서드 올리기를 사용한다.
대안으로는 클래스 추출하기를 적용해 위임을 사용할 수 있다. 우선은 간단히 상속을 적용한 이후, 나중에 필요하다면 슈퍼 클래스를 위임으로 교체하기를 적용한다. public class Department { private String name; private List sta...
#
리팩토링
#
백기선
#
인프런
#
자바
원문 링크 : [Refactoring] 슈퍼 클래스 추출하기