(Kotlin/고급) 위임

위임 모델

참조 링크

위임 패턴은 개체가 상속과 같은 방식으로 코드를 재사용할 수 있도록 하는 개체 지향 디자인 패턴입니다.

  • 예제 소스(kotlin)
    class Rectangle (val width: Int, val height: Int) {
      fun area() = width * height 
    }
    

클래스 창(값 범위: 직사각형) {
// 위임
fun area() = bounds.area()
}


코틀린에서는 Deligation에 대한 특별한 기능이 내장되어 있어 다음과 같이 작성할 수 있다.

```kt interface ClosedShape { fun area() : Int } class Rectangle (val width: Int, val height: Int): ClosedShape { overriade fun area() = width * height } class Window (private val bounds: ClosedShape): ClosedShape by bounds