✏️3.20 거대한 클래스
거대한 클래스
한 클래스가 너무 많은 일을 하려다 보면 필드 수가 늘어난다. 클래스에 필드가 너무 많으면 중복 코드가 생기기 쉽다.
📍 클래스 추출하기: 필드들 일부를 따로 묶는다.
→ 같은 컴포넌트에 모아두는 것이 합당해 보이는 필드들을 선택하면 된다.
depositAmount
와 depositCurrency
필드는 같은 컴포넌트에 두는 것이 좋다. 일반적으로 한 클래스 안에서 접두어나 접미어가 같은 필드들이 함께 추출할 후보들이다.
📍 슈퍼클래스 추출하기: 분리할 컴포넌트를 원래 클래스와 상속 관계로 만드는 게 좋은 경우(클래스 추출하기 보다) 적용하기적용하기
📍 타입 코드를 서브클래스로 바꾸기: (실질적으로 서브클래스 추출하기에 해당하는)
필드가 너무 많은 클래스와 마찬가지로 코드량이 너무 많은 클래스도 중복 코드와 혼동을 일으킬 여지가 있다.
가장 간단한 해법은 그 클래스 안에서 자체적으로 중복을 제거하는 것이다.
클라이언트들이 거대 클래스를 이용하는지 패턴을 파악하여 그 클래스를 어떻게 쪼갤지 단서를 얻을 수 있다. 클라이언트들이 거대 클래스의 특정 기능 그룹만 주로 사용하는지 살핀다. 이 때 각각의 기능 그룹이 개별 클래스로 추출될 후보다. 유용한 기능 그룹을 찾았다면 클래스 추출하기, 슈퍼클래스 추출하기, 타입 코드를 서브클래스로 바꾸기 등을 활용하여 여러 클래스로 분리한다.
Last updated