
아키텍처
코드 품질 개선 기법 19편: 차일드 록
두줄요약
오버라이딩 가능한 범위를 최대한 제한해야 한다는 점을 설명했습니다. 공통 흐름은 부모가 고정하고 자식은 필요한 부분만 구현하도록 분리하는 것이 좋습니다.
핵심 내용
- 상속 구조에서 부모 메서드를 자식이 오버라이드하면서
super호출에 의존하면, 공통 흐름과 자식 책임이 섞여 버그와 오해가 생기기 쉬움 bind처럼 전체 흐름은 부모가 고정하고, 자식은updateMessageList같은 제한된 추상 메서드만 구현하도록 분리하는 방식이 더 견고함- 오버라이딩 가능한 범위를 줄이면 책임 범위가 명확해지고, 자식 클래스가 바꿀 수 있는 부분도 통제 가능
적용해볼 점
- 공통 처리와 확장 포인트를 같은 메서드에 섞지 않기
super호출이 필수인 구조라면 설계를 다시 점검하기- 전체 흐름은 부모에 두고, 변동 지점만 추상 메서드로 분리하기