상속 vs 컴포지션 — 기준별 판정
앞면
상속 vs 컴포지션: 메모리(성능) / 다형성 / 유지보수 / 일반적인 경우 — 각 기준에서 어느 쪽이 유리한가?
뒷면
- 메모리(성능): 상속 — 개체가 메모리 한 덩어리라 캐시 라인 적중에 유리, 할당·해제 횟수도 적음 (컴포지션은 확장성이 좋은 대신 덩어리가 흩어짐)
- 다형성: 상속 — 다른 형의 개체를 한 번에 처리하려면 상속을 사용할 수밖에 없음
- 유지보수: 상황에 따라 갈림 — 공통 코드 중복 제거는 상속 유리, 깊은 상속 관계가 발생하는 구조에서는 독립적으로 조립되는 컴포지션 유리
- 일반적인 경우: is-a면 상속, has-a면 컴포지션 — 주관성이 생기는 부분은 조직의 상식에 맞게 합의