← 질문 목록
#408깊이 0

상속보다 합성을 권장하는 이유는 무엇인가?

아키텍처 · 분산시스템기초

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

상속은 부모의 구현까지 물려받아 굳는다. 합성은 다른 객체를 품는 것이고, 그 자리를 인터페이스로 좁혀 밖에서 넣어 주면 나중에 바꿀 수 있다.

기준상속합성
관계컴파일할 때 굳는다넣어 주면 돌면서 바꾼다
물려받는 것겉모습과 구현까지겉모습만 정해 쓴다
부모가 바뀌면자식이 같이 깨진다약속만 지키면 된다

가장 아픈 것은 부모가 바뀔 때다. 부모의 메서드가 다른 메서드를 부르는 방식만 바꿔도 그것을 재정의한 자식의 동작이 달라진다.

자식이 부모의 약속을 어기기도 쉽다. 정사각형을 직사각형의 자식으로 두면 너비만 바꾸는 코드가 깨진다. 물려받은 자리가 그것을 막지 못한다.

안에서 직접 만들어 쥐면 상속만큼이나 굳는다. 밖에서 넣어 줄 때만 시험에서 가짜로 바꿔 끼울 수 있다.

상속이 맞는 자리도 있다. 하위 유형이 상위 유형 자리에 그대로 들어가도 되는 관계이고 그 관계가 안 변할 때다. 재사용이 목적이면 합성이 낫다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

상속보다 합성을 권장하는 이유는 무엇인가?