개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
클래스는 작아야 한다.
SRP : 클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다.
응집도를 유지하고 시스템의 결합도를 낮춰야 한다.
TIL (Today I Learned) 날짜
2022.03.09
오늘 읽은 범위
10장. 클래스
책에서 기억하고 싶은 내용을 써보세요.
클래스 체계
클래스를 정의하는 표준 자바 관례에 따르면, 가장 먼저 변수 목록이 나온다. 적정 공개 상수가 있다면 맨 처음에 나온다. 다음으로 정적 비공개 변수가 나오며, 이어서 비공개 인스턴스 변수가 나온다. 공개 변수가 필요한 경우는 거의 없다.
변수 목록 다믕에는 공개 함수가 나온다. 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다.
클래스는 작아야 한다.
클래스 이름은 해당 클래스 책임을 기술해야 한다.
클래스 설명은 만일, 그리고, -하며, 하지만을 사용하지 않고서 25단어 내외로 가능해야 한다.
단일 책임 원칙(Single Responsibility Principle)
클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다는 원칙이다.
응집도
몇몇 메서드만이 사용하는 인스턴스 변수가 아주 많아진다면 새로운 클래스로 쪼개야 한다는 신호다.
응집도를 유지하면 작은 클래스 여럿이 나온다.
변경하기 쉬운 클래스
깨끗한 시스템은 클래스를 체계적으로 정리해 변경에 수반하는 위험을 낮춘다.
이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장 할 뿐 기존 코드를 변경하지는 않는다.
변경으로부터 격리
인터페이스와 추상 클래스를 사용해 상세한 구현이 미치는 영향을 격리한다.
시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아진다.
결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
전공 수업시간에 배웠던 응집도, 결합도를 내가 되게 추상적으로 개념만 배운거같다는 생각이 들었다. 10장을 보면서 개념은 내가 배웠던 내용이 맞는데 이게 쓰이는 이유 같은걸 자세하게 들은 것 같달까. 책을 읽는다고 10-5를 10-6~8 으로 리팩터링 하거나 처음 작성 자체를 바로 잘 만들 수는 없을거고 책 초반의 말 처럼 연습이 많이 필요 할 것 같다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
-
오늘 읽은 다른사람의 TIL