객체지향 생활 체조 - 규칙 6: 모든 엔티티를 작게 유지
- 프로그래밍/객체지향 생활 체조 원칙
- 2021. 5. 4.
모든 엔티티를 작게 유지한다.
이 규칙이 가지는 의미
이 말은 50줄 이상 되는 클래스와 10개 파일 이상 되는 패키지는 없어야 한다는 뜻이다.
이 규칙을 책에서는 위와 같이 설명했다. 이 말은 어느 정도 공감하지만 실제로 만들어지는 응용 소프트웨어에서도 가능한가?라고 했을 때의 답은 잘 모르겠다. 하다못해 어떤 객체에 기능이 5줄짜리인 메서드가 10개만 있어도 이 객체에는 더 이상 기능을 추가하기 어렵다. 말이 10개의 메서드이지 객체를 만들다 보면 10개의 기능은 금방 추가된다. 여기서 공감할 수 있는 부분은 객체가 가진 코드 줄의 수가 100줄만 이상만 돼도 그 객체가 무슨 행동을 하는지 파악하기가 어려운 것은 사실이다.
또한 패키지도 객체처럼 응집력이 있고 단일한 목표가 있어야 한다고 말한다. 이 부분은 패키지가 작을수록 정체성 즉 목적을 뚜렷이 표현하기 때문이라고 생각한다. 어느 프로그래머든 패키지의 클래스 파일이 많으면 많을수록 분석하는 것도, 사용하는 것도 쉽지 않다.
정리하기
이 규칙은 결론을 내리기가 어려운 부분이 있다. 규칙이 가지는 의미를 다시 새겨보면, "50줄 이상의 객체는 한 가지 이상의 일을 하고 있을 확률이 높다. 그러니 작게 유지해라"라는 말이다. 그런데 간혹 객체에서 분리하려는 행동이 그 객체가 가지고 있어야 문맥상 흐름이 맞는 경우가 있다. 그럴 때면 이런 경우는 어떻게 해야 하지?라는 생각이 든다.
결론적으로 최대한 엔티티를 작게 유지할 수 있도록 노력해야 한다. 기본적으로는 50줄 이상 되는 객체를 만들지 않는 게 좋지만 상황에 따라서는 이 규칙을 적용하지 못하고 객체를 만들어야 하는 경우가 있다.
반응형
'프로그래밍 > 객체지향 생활 체조 원칙' 카테고리의 다른 글
객체지향 생활 체조 - 규칙 5: 축약 금지 (6) | 2021.04.16 |
---|---|
객체지향 생활 체조 - 규칙 4: 한 줄에 한 점만 사용 (16) | 2021.04.10 |
객체지향 생활 체조 - 규칙 3: 원시값과 문자열의 포장 (6) | 2021.04.08 |
객체지향 생활 체조 - 규칙 2: else 예약어 금지 (11) | 2021.03.30 |
객체지향 생활 체조 - 규칙 1: 메서드당 들여쓰기 한 번 (4) | 2021.03.28 |