본문 바로가기
Programming/Java, Spring

3개 이상의 인스턴스 변수를 가진 클래스를 구현하지 않았는가? - 우아한테크코스 우테코 클린코드 #6

by Renechoi 2022. 10. 31.

3개 이상의 인스턴스 변수를 가진 클래스를 구현하지 않았는가? - 우아한테크코스 우테코 클린코드 #6

 

이전글에 이어 우아한테크코스에서 요구하는 클린코드 원칙들을 살펴본다. 

 


즉, 두개까지 클래스 변수를 허용한다는 뜻으로 <소트웍스 앤솔러지>에서 다음과 같이 적고 있다. 

 

대부부분의 클래스가 간단하게 하나의 상태 변수를 처리하는 일을 맡아 마땅하지만 몇몇 경우 둘이 필요할 때가 있다. 새로운 인스턴스 변수를 하나 더 기존 클래스에 추가하면 클래스의 응집도는 즉시 떨어진다.

 

예를 들어 이름이 변수로 선언될 경우

   String first;
   String middle;
   String last;

이를 두 클래스로 분해할 수 있다는 것이다. 

 

class Name {
   Surname family;
   GivenNames given;
}
 
class Surname {
   String family;
}
 
class GivenNames {
   List<String> names;
}

 

이와 같은 규칙은 자연스럽게 이전 글에서 다룬 "모든 원시갑과 문자열을 포장하기"와 "콜렉션에 대해 일급 콜렉션을 적용하기"와 같은 맥락을 갖고 있다. 

 

핵심은 결합력을 낮추고 응집력을 강화시키며, 단순화 과정을 거쳐 중복을 제거하고 개별 클래스, 메서드의 무게를 줄인다는 것이다. 

 

 

 

 

 

 

반응형