delegation

    [Kotlin] Delegation

    Delegation 패턴은 상속 처리의 좋은 대안으로, Kotlin은 네이티브 코드에 보일러 플레이트 코드가 필요 없는 이 패턴을 지원한다. 아래 코드에서 클래스 Derived는 인터페이스 Base로부터 상속받아 모든 퍼블릭 메소드를 지정된 객체에 위임 가능하다. interface Base{ fun print() } class BaseImpl(val x: Int): Base{ override fun print() { print(x) } } class Derived(b: Base): Base by b fun main(){ val b = BaseImpl(10) Derived(b).print() } //result: 10 Derived의 상위 타입 목록에 있는 by는 Derived의 객체 내부에 b가 저장되고..