아이템 361 [Effective Kotlin] 아이템 36. 상속보다는 컴포지션을 사용하라 [이펙티브 자바] 를 읽었던 기억을 떠올렸을 때 '상속보다는 컴포지션을 사용하라' 라는 아이템이 상당히 인상 깊었다. 하지만 컴포지션 적용시키면서 다형성을 만족시키려면 인터페이스를 상속 받아야 하는데, 모두 구현해야 하므로 코드가 참 더러워지는 것을 확인할 수 있었다. 코틀린을 이를 기가 막히게 해결했다. 다시 상속과 컴포지션의 예를 살펴보고 이를 코틀린이 어떻게 간단히 해결할 수 있는지 살펴 보자. 상속의 문제점 모든 것을 가져올 수밖에 없음 슈퍼클래스의 상태, 메서드, 행위 등 모든 것을 가져온다. 계층 구조를 나타낼 때 굉장히 좋은 도구 그렇기에 일부분만을 사용하기에 부적합한 방법 이를 위해서 컴포지션을 사용한다. 캡슐화를 깨는 상속 내부적인 구현 방법의 변경으로 캡슐화가 깨진다. 컴포지션 슈퍼클래.. 2023. 1. 30. 이전 1 다음 반응형