Sobes.tech
Junior — Middle

Puoi spiegare il concetto di delega nei pattern di progettazione e come viene applicato?

sobes.tech AI

Risposta dell'AI

Il delegato è un pattern di progettazione in cui un oggetto assegna l'esecuzione di un compito specifico a un altro oggetto, chiamato delegato. Questo permette di dividere le responsabilità e aumentare la flessibilità del codice.

In iOS, il delegato viene spesso usato per trasmettere eventi o dati tra oggetti. Ad esempio, UITableView utilizza un delegato per gestire la selezione delle celle o la configurazione dell'aspetto.

Esempio in Swift:

protocol MyDelegate: AnyObject {
    func didFinishTask()
}

class Worker {
    weak var delegate: MyDelegate?

    func startTask() {
        // Esegui il compito
        // ...
        delegate?.didFinishTask()
    }
}

class Manager: MyDelegate {
    func didFinishTask() {
        print("Compito completato")
    }
}

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

Qui, l'oggetto Worker delega la notifica del completamento del compito all'oggetto Manager.