[클린 코드 읽고 정리해두고 다시 보기] 클래스

inho ha·2024년 9월 20일
0

클래스 체계

  • 클래스를 정의하는 표준 자바 관례에 따르면, 가장 먼저 변수 목록이 나온다.
  • static public 상수, static private 변수, private 인스턴스 변수 순서로 나온다.
  • 이후 public 함수가 나오고, private 함수는 호출하는 public 함수 직후에 넣는다.
  • 클래스는 변수와 유틸리티 함수를 숨기며 최대한 캡슐화를 유지해야한다.

클래스는 작아야 한다!

  • 클래스는 클래스 이름으로 기술하는 하나의 책임만 가져야한다.
  • 하나의 책임을 가진 적은 수의 메서드를 가져야한다.
  • 작게 만든 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작을 수행한다.
  • 적은 수의 인스턴스 변수를 가져서 높은 응집도를 가져야한다.
  • 클래스 내의 모든 메서드들이 각각 모든 인스턴스 변수를 사용한다면 응집도가 높다.
  • 이를 기준으로 클래스를 쪼개라!

변경하기 쉬운 클래스

  • 시스템은 변경할 때마다 시스템이 의도대로 동작하지 않을 위험이 따른다.
  • 상세한 구현에 의존하지 말고 추상화에 의존하라. 상세한 구현에 의존하는 클래스는 구현이 바뀌면 동작하지 않을 위험이 따른다.
  • 인터페이스와 같은 추상화에 의존하면 stub을 통한 테스트 코드 작성도 쉬워지고, 시스템의 결합도가 낮아져 유연성과 재사용성이 높아진다.
  • 결합도를 최소로 줄이면 DIP를 따르는 클래스가 나온다.
profile
inho ha / ian(swatchon) / iha(42seoul)

0개의 댓글