클래스
깨끗한 클래스가 깨끗한 코드를 만든다.
클래스 체계
표준 자바 관례에 따르면,
- 정적 공개 상수
- 정적 비공개 변수
- 비공개 인스턴스 변수
- 공개 함수
- 비공개 함수(자신을 호출하는 공개 함수 직후에 등장)
순으로 정의되며 클래스를 구성한다.
=> 추상화 단계가 순차적으로 내려가 신문 기사처럼 읽힌다.
캡슐화
변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫다.
클래스는 작아야 한다!
클래스는 작게 만드는 것이 기본 규칙
-> 하나의 클래스는 하나의 책임만 맡아야 한다.
- 클래스 이름은 해당 클래스 책임을 기술해야 한다. (클래스 이름이 모호하다면 클래스 책임이 너무 많아서일 확률 높음. Processor, Manager, Super 등과 같은 단어들)
- 클래스 설명은 만일(if), 그리고(and), 또한(or), 하지만(but)을 사용하지 않고서 25단어 내외로 가능해야 한다.
만일 클래스 설명에 위의 단어들이 사용된다면 책임이 너무 많다는 증거다.
단일 책임 원칙
클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다는 원칙.
단일 책임 클래스는 규모가 큰 시스템을 다루는 데 필수다.
큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.
응집도
일반적으로 메서드가 클래스의 인스턴스 변수를 더 많이 사용할수록 응집도가 높다고 한다.
응집도가 높은 클래스는 메서드와 변수가 서로 의존하며 논리적인 단위로 묶이게 된다. -> 응집도를 높이는 게 좋다.
응집도를 유지하면 작은 클래스 여럿이 나온다
“함수를 작게, 매개변수 목록을 짧게” 전략을 따르다 보면 몇몇 메서드만이 사용하는 인스턴스 변수가 많아지게 됨
-> 응집도가 높아지도록 작은 클래스 여럿으로 쪼갤 수 있다.
=> 프로그램이 체계가 잡히고 구조가 투명해짐.
'독서일지 > 클린 코드' 카테고리의 다른 글
클린 코드 독서일지 - Day 20 (0) | 2023.11.15 |
---|---|
클린 코드 독서일지 - Day 19 (1) | 2023.11.15 |
클린 코드 독서일지 - Day 17 (1) | 2023.11.11 |
클린 코드 독서일지 - Day 16 (0) | 2023.11.11 |
클린 코드 독서일지 - Day 15 (1) | 2023.11.10 |