Junior — Middle
Каква е ролята на патърна Delegation в обектно-ориентираното програмиране и защо се използва?
sobes.tech AI
Отговор от AI
Моделът за делегиране в обектно-ориентираното програмиране е начин за прехвърляне на отговорността за изпълнение на конкретна задача към друг обект. Вместо класът сам да реализира определена функционалност, той я делегира на друг обект, който е специализиран в тази задача.
Това позволява:
- Разделяне на отговорностите между класовете, подобрявайки модулността.
- Повишаване на повторната употреба на кода.
- Улесняване на поддръжката и разширяването на функционалността.
- Избягване на наследяване, когато композицията е достатъчна.
Например, в Android често се използва делегиране за обработка на събития: активността делегира обработката на кликвания върху бутони на отделен слушателски обект.
class ButtonHandler {
fun onClick() {
println("Бутонът е натиснат")
}
}
class Activity {
private val handler = ButtonHandler()
fun buttonClicked() {
handler.onClick() // делегираме обработката
}
}