클린 코드 - 10장 클래스
CleanCode ·클린 코드 10장 클래스를 정리합니다!
깨끗한 클래스 만드는 법
- 캡슐화
- 함수나 변수를 비공개 상태를 유지하기 위해 노력해라
- 캡슐화를 해제하는 것은 언제나 최후의 수단
- 클래스는 작아야 함
- SRP, 단 하나의 책임만 갖게 해라
- 큰 클래스 몇 개가 아니라 작은 클래스는 여럿으로 이뤄진 시스템이 더 바람직
- 작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며,
다른 작은 클래스와 협력해 시스템이 필요한 동작을 수행한다.
- 응집도를 높여라.
- 응집도가 높다는 의미는 클래스에 속한 메서드와 변수가
서로 의존하며 논리적인 단위로 묶인다는 의미 - 클래스는 인스턴스 변수 수가 작아야 함.
- 인스턴스 변수 수가 많아지면 새로운 클래스로 쪼개라.
- 매개 변수가 많으면 인스턴스 변수로 승격하면
새 함수는 인수가 필요없고 그만큼 함수를 쪼개기 쉬워짐. - 클래스가 응집도를 잃는다면 쪼개라.
- 그러면서 프로그램에 점점 더 체계가 잡히고 구조가 투명해진다.
- 응집도가 높다는 의미는 클래스에 속한 메서드와 변수가
- 변경하기 쉬운 클래스
- OCP, 새 기능을 수정하거나 기존 기능을 변경할 때
건드릴 코드가 최소인 시스템 구조가 바람직 - 결합도를 낮춰라
- 시스템의 결합도를 낮추면 유연성과 재사용성이 높아짐
- 결합도가 낮다는 것은 각 시스템 요소가 다른 요소로부터
그리고 변경으로부 잘 격리되어 있다는 의미 - 결합도를 최소로 줄이면 자연스럽계 DIP를 따르게 됨
- OCP, 새 기능을 수정하거나 기존 기능을 변경할 때