Код IT
← Каталог

Основы языка Kotlin — Делегирование

Фрагмент из «Основы языка Kotlin»: Делегирование.

Kotlin main.kt
interface Logger {
    fun log(message: String)
}

class ConsoleLogger : Logger {
    override fun log(message: String) = println("[INFO] $message")
}

class Service(logger: Logger) : Logger by logger {
    fun process() {
        logger.log("Starting...")
        // ...
        log("Finished.") // делегирует вызов logger.log()
    }
}
interface Logger {
    fun log(message: String)
}

class ConsoleLogger : Logger {
    override fun log(message: String) = println("[INFO] $message")
}

class Service(logger: Logger) : Logger by logger {
    fun process() {
        logger.log("Starting...")
        // ...
        log("Finished.") // делегирует вызов logger.log()
    }
}