Software Engineering Note

10장. 클래스 본문

스터디/Clean Code

10장. 클래스

devmoons 2015. 8. 9. 15:25

클래스는 작아야 한다. 


클래스의 크기는 책임의 갯수로 센다. 그리고 클래스당 책임은 "1" 이다.


클래스 이름은 해당 클래스 책임을 기술해야 한다.


Processor, Manager .. 이런 이름을 나도 많이 사용하는데 아무래도 영어 실력이 부족해서 더 그런듯

책임을 명확하게 하고 클래스 이름을 어떻게 지어야할까 고민이 필요하겠다.


클래스 설명은 if, and, or, but을 사용하지 않고 25 단어 내외로 가능해야 한단다.


단일 책임 원칙 (Single Responsibility Principle)


클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다.


많은 책임을 떠안은 클래스들을 우리가 자주 보는 이유?


"돌아가는 소프트웨어 -> 깨끗하고 체계적인 소프트 웨어"


이 과정으로 들어가야 하는데 대부분 돌아가면 장땡이라고 생각하고 거기에만 초점을 맞추기 때문에.

(물론 이런 이유도 있지만 사실은 어떤게 깨끗하고 체계적인가? 인지하는데 능력의 차이도 있기때문 아닐까?)


큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다!


응집도


응집도가 높다는 것은?


클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미.

=> 모든 인스턴스 변수를 메서드마다 사용하는 클래스가 가장 응집도가 높다.


응집도를 높게 유지하기 위한 팁


메소들에 주렁주렁 달려있는 파라미터들을 인스턴스 변수로 올린다.

만약, 올려버린 인스턴스 변수를 몇몇 메소드만 사용한다면, 이건 클래스를 쪼개라는 신호다!

(즉, 클래스가 응집도를 잃는다면 쪼개라)


응집도를 높게 유지하면 작은 클래스가 여러개 나오게 되는데, 이것은 매우 바람직하다.



'스터디 > Clean Code' 카테고리의 다른 글

12장. 창발성  (0) 2015.09.06
11장. 시스템  (0) 2015.09.06
9장. 단위 테스트  (0) 2015.08.08
8장. 경계  (0) 2014.11.25
7장. 오류 처리  (0) 2014.11.25