Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ დელეგირების კონცეფცია დიზაინის ნიმუშებში და როგორ გამოიყენება?

sobes.tech AI

პასუხი AI-სგან

დელეგაცია არის დიზაინის ნიმუში, სადაც ერთი ობიექტი გადასცემს კონკრეტული დავალების შესრულებას სხვა ობიექტს, რომელსაც დელეგატი ეწოდება. ეს საშუალებას აძლევს პასუხისმგებლობების განაწილებას და კოდის მოქნილობის გაზრდას.

iOS-ში, დელეგაცია ხშირად გამოიყენება მოვლენების ან მონაცემების გადაცემისთვის ობიექტებს შორის. მაგალითად, UITableView იყენებს დელეგატს უჯრედების არჩევის ან გარეგნობის კონფიგურაციისთვის.

Swift-ის მაგალითი:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // დავალების შესრულება
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("დავალება დასრულდა")
    }
}

let worker = Worker()
let manager = Manager()
worker.delegate = manager
worker.startTask()

აქ, ობიექტი Worker დელეგატით გადასცემს დავალების დასრულების შეტყობინებას ობიექტს Manager.