Sobes.tech
Junior — Middle

Aká je úloha vzoru Delegation v objektovo orientovanom programovaní a prečo sa používa?

sobes.tech AI

Odpoveď od AI

Vzor delegácie v objektovo orientovanom programovaní je spôsob prenášania zodpovednosti za vykonanie určitej úlohy na iný objekt. Namiesto toho, aby trieda sama implementovala určitú funkcionalitu, deleguje ju na iný špecializovaný objekt.

Toto umožňuje:

  • Rozdelenie zodpovedností medzi triedami, zlepšenie modularity.
  • Zvýšenie opakovanej použiteľnosti kódu.
  • Zjednodušenie údržby a rozširovania funkcií.
  • Vyhnutie sa dedičstvu tam, kde je dostatočná kompozícia.

Napríklad v Androide sa často používa delegácia na spracovanie udalostí: aktivita deleguje spracovanie kliknutí na tlačidlá na samostatný poslucháčsky objekt.

class ButtonHandler {
    fun onClick() {
        println("Tlačidlo bolo stlačené")
    }
}

class Activity {
    private val handler = ButtonHandler()

    fun buttonClicked() {
        handler.onClick()  // delegujeme spracovanie
    }
}