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.