[Kotiln] by 키워드 Delegate Pattern 과 객체지향

youneeo·2024년 1월 5일
0

Delegate Pattern

by 키워드는 다시말해 위임의 개념이다.
간단한 예제를 통해 알아 보겠다.

interface Printer {
    fun printMessage(message: String)
}

//Printer 라는 인터페이스를 상속받음
class RealPrinter : Printer {
    override fun printMessage(message: String) {
        println("Printing: $message")
    }
}

class PrinterDelegate(realPrinter: RealPrinter) : Printer by realPrinter  //realPrinter(RealPrinter의 인스턴스) 는 Printer인터페이스의 구현을 상속받음

fun main() {
	
    val realPrinter = RealPrinter() // ver1. 일반적 예시를위해 인스턴스를 만들어 매개변수에 넣었고
    val printerDelegate = PrinterDelegate(realPrinter)
    
    val printerDelegate = PrinterDelegate(Realprinter()) //ver2. 이렇게 넣어도 됩니다.

    printerDelegate.printMessage("나는 짱이다")
}

실행결과

profile
정돈된 공간에서 생각하기를 좋아합니다.

0개의 댓글