오브젝트 11장

송은우·2022년 10월 18일
0

TIL

목록 보기
30/61

is-a has-a 관계가 있는 것
상속은 is-a, 합성은 has-a
상속은 간단할 수는 있지만, 우아한 방법은 아님
재사용을 위해서는 객체 합성이 상속보다 좋은 방법이다
퍼블릭 인터페이스만 의존하기에

상속의 문제점
1. 불필요한 인터페이스 상속
2. 메서드 오버라이딩 오작용 문제
3. 부모 클래스와 자식 클래스 동시 수정 문제

우리 마음대로 접근 제한을 사용할 수 있음
포워딩 메서드 패턴.
동시 수정은 해결되지 않는다.
인터페이스에 의존하는 부분이 확실히 안정성이높아짐

상속은 하나의 기능 추가, 수정에 많이 발생함.
단일 상속만 지원하는 언어는 중복 코드가 오히려 늘 수 있다.

클래스 폭발 문제=> 모든 조합에 대해서 클래스가 다 만들어짐
합성관계는 런타임에 동적으로 만들 수 있다.
구현 시점에 고정시킬 필요가 없음
유연성에 의한 고통과 유연성에 의한 고통 비교

믹스인
객체를 생성할 때 코드 일부를 클래스 안에 섞어 넣어 재사용 하는 기법을 가리키는 용어.
합성은 실행 시점에 객체를 조합, 믹스인은 컴파일 시점에 필요한 것 추가
상속은 is-a 관계를 만들기 위함, 믹스인은 코드를 다른 코드 안에 섞기 위한 방법

스칼라의 트레이트를 이용한다.

profile
학생의 마음가짐으로 최선을 다하자

0개의 댓글