
아키텍처
코드 품질 개선 기법 13편: 클론 가족
두줄요약
두 상속 트리의 암묵적 대응 관계가 타입 안전성 문제를 만들 수 있음을 설명했습니다. 상속 대신 컴포지션을 쓰거나 제네릭으로 반환 타입을 명시하는 방법을 제안했습니다.
핵심 내용
- 두 상속 트리 사이의 암묵적 대응 관계가 타입 안전성 문제를 유발하는 사례
createModel()의 반환 타입이 공통 부모형이라 다운캐스팅과 숨은 제약 조건이 필요해지는 구조- 해결 방향으로 상속 대신 컴포지션/애그리게이션을 쓰거나, 제네릭으로 반환 타입을 명시하는 방법 제시
적용해볼 점
- 공통화 목적만 있다면 상속보다 컴포지션 분리 검토
- 부모 클래스가 필요해도 반환 타입은 제네릭으로 구체화
- 공통 부모 타입이 필요하면 타입 파라미터 상한으로 제약 명시