Sobes.tech
Junior — Middle

Объектке багытталган программалоодо Делегация паттернин ролу эмне жана эмне үчүн колдонулат?

sobes.tech AI

AIден жооп

Объект-ориентирленген программалоодо Делегация үлгүсү — бул белгилүү бир тапшырманы аткаруу жоопкерчилигин башка объектке өткөрүү жолу. Класс өзү белгилүү бир функцияны ишке ашырбайт, ал аны башка адистешкен объектке делегирлейт.

Бул төмөнкүлөргө мүмкүндүк берет:

  • жоопкерчиликтерди класстар ортосунда бөлүштүрүү, модулдуулукту жакшыртуу.
  • кодду кайра колдонуу мүмкүнчүлүгүн арттыруу.
  • тейлөө жана функционалдуулукту кеңейтүүнү жеңилдетүү.
  • мурас алууну болтурбоо, эгерде композиция жетиштүү болсо.

Мисалы, Androidде, иш-чараларды иштетүү үчүн делегация кеңири колдонулат: активдүүлүк кнопкалардын басылыш иш-чараларын өзүнчө угуу объектисине делегирлейт.

class ButtonHandler {
    fun onClick() {
        println("Тугма басылды")
    }
}

class Activity {
    private val handler = ButtonHandler()

    fun buttonClicked() {
        handler.onClick()  // ишти делегирлөө
    }
}