개발/Android
[이펙티브 코틀린] 상속보다는 컴포지션을 사용하라
상속보다는 컴포지션을 사용하라 상속은 굉장히 강력한 기능으로 is-a 관계의 객체 계층 구조를 만들기 위해 설계되었다. 상속은 하나의 클래스만을 대상으로 할 수 있다. 상속을 사용해 행위를 추출하다 보면 많은 함수를 갖는 거대한 Base 클래스를 만들게 되고, 굉장히 깊고 복잡한 계층 구조가 만들어진다. 상속은 클래스의 모든 것을 가져오므로 불필요한 함수를 갖는 클래스가 만들어 질 수 있다. 상속은 코드를 이해하기 어렵게 할 수 있다. 슈퍼클래스를 여러번 확인해야할 수 있다. 그래서 대표적인 대안으로 컴포지션이 있다. 컴포지션을 사용한다는 것은 객체를 프로퍼티로 갖고, 함수를 호출하는 형태로 재사용하는 것을 의미한다. 상속은 슈퍼 클래스의 메서드, 제약, 행위 등 모든 것을 가져온다. 따라서 상속은 객체..
2023. 4. 27.