yepdi / TIL

Today I Learn
0 stars 0 forks source link

오브젝트 - 합성과 유연한 설계 #15

Open yepdi opened 2 years ago

yepdi commented 2 years ago

상속 : 부모 클래스와 자식 클래스를 연결해서 부모 클래스의 코드를 재사용 (is-a 관계) but 부모, 자식 클래스 간 결합도가 높아짐 합성 : 전체를 표현하는 객체가 부분에 표현하는 객체를 포함하여 부분 객체의 코드를 재사용 (has-a 관계)

코드 재사용을 위해서는 객체 합성이 클래스 상속보다 더 좋은 방법이다

상속의 문제점

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

상속으로 인한 조합의 폭발적인 증가

클래스 폭발 : 상속의 남용으로 하나의 기능을 추가하기 위해 필요 이상으로 많은 수의 클래스를 추가 -> 자식 클래스가 부모 클래스의 구현에 강하게 결합되도록 강요하는 상속의 근본적인 한계

합성은 런타임에 동적으로 변경 가능

객체 합성이 클래스 상속보다 더 좋은 방법이다

믹스인