프로그래밍

[클린코드] 10장 클래스

Victory_HA 2023. 10. 29. 23:14

클래스

캡슐화

  • 같은 패키지 안에서 테스트 코드가 함수를 호출하거나 변수를 사용해야 한다면, 함수, 변수를 protected로 선언하거나 패키지 전체로 공개한다.

클래스는 작아야한다.

  • 클래스는 얼마나 작아야하는가?
    • SRP(Single Responsibility Principle)원칙에 따를만큼 작아야한다.
      SRP란 단일책임원칙이라 하며, 
      `하나의 클래스는 하나의 기능 담당하여 하나의 책임을 수행하는데 집중되어야 있어야 한다`는 원칙
  • 시스템은 개발기간이 늘어날수록 논리가 많아지고, 복잡성이 증가한다.
  • 복잡한 시스템을 다루려면, 체계적으로 정리가 돼야한다.
  • 만능클래스 한개보다, 작은클래스(SRP원칙에 따른 클래스) 여러개로 이뤄진 시스템이 바람직하다.

응집도

  • 응집도가 높다: 클래스에 속한 메서드와 변수가 서로 의존관계에 있다.
  • 클래스가 응집력을 잃으면 쪼개라.

변경하기 쉬운 클래스

  • 이상적인 시스템은 새 기능을 추가할 때, 기존 코드를 변경하지 않는다.

변경으로부터 격리

  • 결합도가 낮다: 각 시스템 요소가 다른 요소로부터, 변경으로부터 잘 격리되어 있다는 의미
  • 결합도를 낮추면 유연성과 재사용성이 높아진다.
  • 결합도가 낮아지면, DIP 원칙에 부합하는 클래스가 생긴다.
    DIP란 의존성역전원칙이라 하며,
    `어떤 Class를 참조해서 사용해야하는 상황이 생긴다면, 그 Class를 직접 참조하는 것이 아니라 그 대상의 상위 요소(추상 클래스 or 인터페이스)로 참조하라`는 원칙

'프로그래밍' 카테고리의 다른 글

[클린코드] 10,11장 정리  (0) 2023.11.01
[클린코드] 11장 시스템  (0) 2023.10.29
[클린코드] 6,7장 정리  (1) 2023.10.18
[클린코드] 7장 오류 처리  (0) 2023.10.15
[클린코드] 6장 객체와 자료구조  (0) 2023.10.15