상속 vs 컴포지션: 유지보수
유지보수 관점에서 상속의 특징은?
- 코드량을 줄여줌: 공통 코드를 부모 클래스에만 작성하면 됨
- 하지만 코드 수정이 어려울 수 있음: 부모 변경이 자식들에 퍼짐
유지보수 관점에서 컴포지션의 특징은?
- 코드량이 많음: 부품 개체의 메서드를 연쇄로 호출하는 위임 코드가 필요
- 하지만 독립적으로 조립되는 성질이라 코드 수정은 상대적으로 편함
깊은 상속 관계의 유지보수 문제는?
부모 클래스 변경이 깊게 자식 클래스까지 영향을 줌
- 많은 자식 클래스가 한꺼번에 영향을 받음
- 이런 깊은 상속 상황에서는 컴포지션이 유지보수에 유리함