Junior — Middle
Cum se realizează legătura dintre interfață și o implementare specifică în timpul execuției programului?
sobes.tech AI
Răspuns de la AI
În iOS, pentru a lega interfața de o implementare specifică în timpul execuției, se folosește adesea pattern-ul de delegare (delegate) sau protocoale.
Un protocol definește un set de metode, iar o clasă concretă implementează acest protocol. În timpul execuției, obiectul interfeței face referire la un obiect care implementează protocolul și îi apelează metodele. Acest lucru permite schimbarea implementării fără a modifica interfața.
Exemplu în Swift:
protocol DataSource {
func fetchData() -> String
}
class RealDataSource: DataSource {
func fetchData() -> String {
return "Date din sursa reală"
}
}
class ViewController {
var dataSource: DataSource?
func showData() {
if let data = dataSource?.fetchData() {
print(data)
}
}
}
let vc = ViewController()
vc.dataSource = RealDataSource() // legarea implementării în timpul execuției
vc.showData() // Va afișa: Date din sursa reală
Astfel, interfața (protocolul) și implementarea sunt legate dinamic.