클래스 체계
- 정적(static) , 공개(public) , 상수가 맨 처음에 나오며
다음으로 정적 비공개(private) 변수가 나온다.
이어서 비공개 인스턴스 변수가 나온다.
변수 목록 다음에는 공개 함수가 나온다.
비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다.
=> 추상화 단계는 순차적으로 내려간다.
클래스 만들기 규칙
- 클래스의 크기는 작아야 한다.
단일 책임 원칙(Single Responsibility Principle)은 클래스나 모듈을 변경할 이유가 하나뿐이어야 한다는 원칙
큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.
작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유도 하나며, 다른 작은 클래스와 협력해
시스템에 필요한 동작을 수행한다.
- 인스턴스 변수 수가 작아야 한다.
각 클래스 메서드는 클래스 인스턴스 변수를 하나 이상 사용해야 한다.
일반적으로 메서드가 변수를 더 많이 사용 할수록 메서드와 클래스는 응집도가 더 높다.
응집도가 높다는 말은 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미다.
시스템의 결합도를 낮추면 유연성과 재사용성도 높아진다.
결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다.
시스템 요소가 서로 잘 격리되어 있으면 각 요소를 이해하기도 더 쉬워진다.
결합도를 최소로 줄이면 자연스럽게 또 다른 클래스 설계 원칙인
DIP(Dependency Inversion Principle)를 따르는 클래스가 나온다.
본질적으로 DIP는 클래스가 상세한 구현이 아니라 추상화에 의존해야 한다는 원칙이다.
참고한 책
Clean Code(클린 코드)
'CleanCode' 카테고리의 다른 글
Clean Code 짜기12 (0) | 2019.11.12 |
---|---|
Clean Code 짜기10 (0) | 2019.11.04 |
Clean Code 짜기9 (0) | 2019.10.31 |
Clean Code 짜기8 (0) | 2019.10.30 |
Clean Code 짜기7 (0) | 2019.10.25 |