Sobes.tech
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.